| | |
| | | @keyup.enter.native="handleQuery"> |
| | | <i slot="prefix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | | <!-- <el-input |
| | | v-model="searchVal" |
| | | placeholder="在“通讯录”中搜索" |
| | | clearable |
| | | style="width: 240px" |
| | | @input="inputChange"> |
| | | <i slot="prefix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | | <div class="outer-table"> |
| | | 此父组件引用子组件tablemax |
| | | <tablemax label="myLabel" :tableData="contactList"> |
| | | <template v-slot:table> |
| | | <el-table-column label="操作" width="180"> |
| | | <template slot-scope="scope"> |
| | | <el-button @click="handleCheck(scope.row)" type="text" size="small" |
| | | >调用</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | | </tablemax> |
| | | </div>--> |
| | | |
| | | <!-- v-model="queryParams.id" |
| | | |
| | | v-model:phone="queryParams.phone" |
| | | v-model:wx="queryParams.wx" |
| | | v-model:qq="queryParams.qq" |
| | | v-model:twitter="queryParams.twitter" |
| | | v-model:isAlways="queryParams.isAlways" |
| | | v-model:remark="queryParams.remark" |
| | | @keyup.enter.native="handleQuery" |
| | | --> |
| | | </el-form-item> |
| | | <el-form-item label="名称" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | | placeholder="请输入名称" |
| | | clearable |
| | | style="width: 240px" |
| | | @keyup.enter.native="handleQuery"> |
| | | <i slot="prefix" class="el-input__icon el-icon-search"></i> |
| | | </el-input> |
| | | <el-select v-model="queryParams.name" placeholder="所有名称" clearable |
| | | style="width: 240px" @keyup.enter.native="handleQuery"> |
| | | <el-option v-for="item in typeOptions" |
| | | :key="item.value" :label="item.label" :value="item.value"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="类别" prop="type" > |
| | | <!-- <el-input--> |
| | | <!-- v-model="queryParams.type"--> |
| | | <!-- placeholder="请输入类别"--> |
| | | <!-- clearable--> |
| | | <!-- style="width: 240px"--> |
| | | <!-- @keyup.enter.native="handleQuery">--> |
| | | <!-- <i slot="prefix" class="el-input__icon el-icon-search"></i>--> |
| | | <!-- </el-input>--> |
| | | <el-select |
| | | v-model="queryParams.type" |
| | | placeholder="所有类别" |
| | |
| | | @keyup.enter.native="handleQuery" |
| | | > |
| | | <el-option |
| | | v-for="dict in typeOptions" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | v-for="item in typeOption" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <div> |
| | | <!-- <div style="width: 171px;--> |
| | | <!-- height: 28px;--> |
| | | <!-- font-size: 21px;--> |
| | | <!-- font-family: Microsoft YaHei-Regular, Microsoft YaHei;--> |
| | | <!-- font-weight: 400;--> |
| | | <!-- color: #000000;--> |
| | | <!-- line-height: 25px;--> |
| | | <!-- ">证件、荣誉、资质</div>--> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | </div> |
| | | |
| | | <el-table v-loading="loading" :data="honorList" :row-key="getRowId" ref="multipleTable" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" style="background: #FFEFF2; border-radius: 14px 14px 14px 14px;"> |
| | | <el-table-column type="selection" :reserve-selection="true" width="25" align="center" /> |
| | | <el-table-column type="selection" :reserve-selection="true" width="55" align="center" /> |
| | | <el-table-column fixed label="序号" sortable type="index" align="center" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="60"/> |
| | | <el-table-column label="时间" prop="createTime" sortable width="120" align="center"> |
| | | |
| | | <template slot-scope="scope">{{scope.row.createTime? scope.row.createTime: '————'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="类别" prop="type" sortable :show-overflow-tooltip="true" width="120" align="center" > |
| | | <!-- <template slot-scope="scope">{{scope.row.type? scope.row.type: '————'}}</template>--> |
| | | <template slot-scope="scope">{{ getSrc(scope.row.type) }}</template> |
| | | <template slot-scope="scope">{{scope.row.type? scope.row.type: '————'}}</template> |
| | | <!-- <template slot-scope="scope">{{ getSrc1(scope.row.type) }}</template>--> |
| | | </el-table-column> |
| | | <el-table-column label="名称" prop="name" sortable :show-overflow-tooltip="true" width="120" align="center" > |
| | | <el-table-column label="名称" prop="name" sortable width="120" align="center" > |
| | | <template slot-scope="scope">{{scope.row.name? scope.row.name: '————'}}</template> |
| | | </el-table-column> |
| | | <el-table-column label="证号/专业" prop="idNo" sortable width="170" align="center" > |
| | |
| | | </el-table-column> |
| | | <el-table-column label="电子文件" prop="url" width="160" align="center"> |
| | | <template slot-scope="scope" > |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | src="../../assets/images/deviceLis.png" |
| | | alt="" |
| | | style="width: 35px; height: 35px;" |
| | | fit="cover" |
| | | v-if="scope.row.url !== ','" |
| | | > |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | src="../../assets/images/deviceA.png" |
| | | alt="" |
| | | style="width: 35px; height: 35px;" |
| | | fit="cover" |
| | | v-if="scope.row.url ===',' " |
| | | > |
| | | <div @click="handleCheck(scope.row)"> |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | | src="../../assets/images/deviceLis.png" |
| | | alt="" |
| | | style="width: 35px; height: 35px;" |
| | | fit="cover" |
| | | v-if="!(scope.row.url === '' || scope.row.url === ',' || scope.row.url === null)" |
| | | > |
| | | <img |
| | | v-else |
| | | class="el-upload-list__item-thumbnail" |
| | | src="../../assets/images/deviceA.png" |
| | | alt="" |
| | | style="width: 35px; height: 35px;" |
| | | fit="cover" |
| | | |
| | | ></div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="备注" prop="remark" sortable width="120" align="center"> |
| | |
| | | <!-- 添加证书、荣誉、资质配置对话框 --> |
| | | <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body> |
| | | <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px"> |
| | | |
| | | <el-form-item label="时间" prop="createTime"> |
| | | <el-input v-model="formDat.createTime" placeholder="请输入创建时间" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="类别" prop="type"> |
| | | <!-- <el-input v-model="formDat.type" placeholder="请输入类别" clearable :style="{width: '100%'}" >--> |
| | | <!-- </el-input>--> |
| | | <el-select v-model="formDat.type" placeholder="请选择类别" clearable :style="{width: '100%'}" > |
| | | <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value" |
| | | <el-option v-for="(item, index) in typeOption" :key="index" :label="item.label" :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="名称" prop="name"> |
| | | <el-input v-model="formDat.name" placeholder="请输入名称" clearable :style="{width: '100%'}" ></el-input> |
| | | <el-select v-model="formDat.name" placeholder="请选择名称" clearable :style="{width: '100%'}" > |
| | | <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | <el-input v-model="newOption" v-if="showInput" placeholder="若未在上述选项中找到对应名称,请在此输入新的名称" @change="addNewOption"></el-input> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="证件号/专业" prop="idNo"> |
| | | <el-input v-model="formDat.idNo" placeholder="请输入证件号/专业" clearable :style="{width: '100%'}" > |
| | |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="有效时间" prop="validityDate"> |
| | | <el-input v-model="formDat.validityDate" placeholder="请输入有效时间" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | <el-date-picker v-model="formDat.validityDate" type="date" placeholder="请选择日期" |
| | | :editable="false" :style="{width: '100%'}" value-format="yyyy-MM-dd" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="获得时间" prop="getDate"> |
| | | <el-input v-model="formDat.getDate" placeholder="请输入获得时间" clearable :style="{width: '100%'}" > |
| | | </el-input> |
| | | <el-date-picker v-model="formDat.getDate" type="date" placeholder="请选择日期" |
| | | :editable="false" :style="{width: '100%'}" value-format="yyyy-MM-dd" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="存放位置" prop="location"> |
| | | <el-input v-model="formDat.location" placeholder="请输入存放位置" clearable :style="{width: '100%'}" > |
| | |
| | | <el-input v-model="formDat.remark" placeholder="请输入备注" clearable :style="{width: '100%'}" ></el-input> |
| | | </el-form-item> |
| | | |
| | | <h4 class="form-header">电子文件 </h4> |
| | | <h4 class="form-header">相关图片 </h4> |
| | | <el-upload |
| | | action="#" |
| | | list-type="picture-card" |
| | |
| | | :http-request="requestUpload" |
| | | :file-list="fileList" |
| | | > |
| | | <i slot="default" class="el-icon-plus"></i> |
| | | <i slot="default" class="el-icon-plus"></i> |
| | | <div slot="file" slot-scope="{file}"> |
| | | <img |
| | | class="el-upload-list__item-thumbnail" |
| | |
| | | class="upload-demo" |
| | | multiple |
| | | |
| | | :on-remove="handleRemove" |
| | | :on-remove="handleRemoveFile" |
| | | :http-request="requestUpload" |
| | | :show-file-list="true" |
| | | > |
| | | <el-button type="primary">点击上传</el-button> |
| | | <div v-if="uploading" class="upload-status">正在上传...</div> |
| | | <template #tip> |
| | | <div class="el-upload__tip"> |
| | | </div> |
| | |
| | | |
| | | |
| | | //导入接口函数 |
| | | import {listHonor,enload, addHonor,updateHonor, delHonor,uploadPic,getCategory} from "@/api/honor/index"; |
| | | import {listHonor,listType,enload, addHonor,updateHonor, delHonor,uploadPic,getCategory} from "@/api/honor/index"; |
| | | |
| | | import { Notification, MessageBox, Message, Loading } from 'element-ui' |
| | | export default { |
| | |
| | | total: 0, |
| | | // 荣誉表格数据 |
| | | honorList: [], |
| | | typeList:[], |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否显示弹出层 |
| | |
| | | // 日期范围 |
| | | dateRange: [], |
| | | // 数据范围选项 |
| | | fot:[".jpg",".jif"], |
| | | fileList:[ |
| | | ], |
| | | fileListOther:[ |
| | | |
| | | ], |
| | | fot:['.bmp','.jpg','.jpeg','.png','.tif','.gif','.pcx','.tga','.exif','.fpx', |
| | | '.svg','.psd','.cdr','.pcd','.dxf','.ufo','.eps','.ai','.aw','.WMF','.webp','.apng'], |
| | | fileList:[], |
| | | fileListOther:[], |
| | | dsb:true, |
| | | btn:false, |
| | | fit:['fill'], |
| | | |
| | | uploading: false, |
| | | formDat: { |
| | | //荣誉证书记录 |
| | | id:undefined, |
| | |
| | | trigger: 'blur' |
| | | }], |
| | | name: [{ |
| | | required: true, |
| | | // required: true, |
| | | message: '请输入名称', |
| | | trigger: 'blur' |
| | | }], |
| | |
| | | }, |
| | | selected:'', |
| | | typeOptions: [], |
| | | newOption: undefined, |
| | | showInput: true, |
| | | typeOption:[ |
| | | {value:'证件',label:'证件'}, |
| | | {value:'荣誉',label:'荣誉'}, |
| | | {value:'资质',label:'资质'},] |
| | | |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.getCateInfor() |
| | | // for (let i = 0; i < this.contactList.length; i++) { |
| | | // this.formDat[i] = this.contactList[i]; |
| | | // } |
| | | this.getTypeOptions(); |
| | | }, |
| | | methods: { |
| | | // 取消按钮 |
| | |
| | | return "statistics-warning-row"; |
| | | } |
| | | }, |
| | | //名称 |
| | | addNewOption() { |
| | | const newOption = this.newOption.trim(); |
| | | if (newOption && !this.typeOptions.includes(newOption)) { |
| | | this.typeOptions.push(newOption); |
| | | this.$set(this.formDat, 'name', newOption); // 更新formDat.type的值为新的选项 |
| | | } |
| | | }, |
| | | /** 查询记录列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | // console.log(this.queryParams) |
| | | console.log(this.queryParams) |
| | | this.queryParams.happenStartTime = this.dateRange.length > 0 && this.dateRange[0] |
| | | this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1] |
| | | // listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => { |
| | | listHonor(this.queryParams).then(response => { |
| | | // alert(123) |
| | |
| | | this.loading = false; |
| | | } |
| | | ); |
| | | listType(this.queryParams).then(response => { |
| | | this.typeList = response.data; |
| | | this.total = response.data.total; |
| | | // console.log( this.typeList ) |
| | | // 在回调函数中调用 getTypeOptions() |
| | | this.getTypeOptions(); |
| | | this.loading = false; |
| | | } |
| | | ); |
| | | }, |
| | | getTypeOptions() { |
| | | const filteredOptions = this.typeList.filter(item => typeof item === 'string' && item !== ''); |
| | | |
| | | const uniqueOptions = {}; |
| | | |
| | | this.typeOptions = filteredOptions.reduce((options, option) => { |
| | | if (!uniqueOptions[option]) { |
| | | uniqueOptions[option] = true; |
| | | options.push({ |
| | | label: option, |
| | | value: option |
| | | }); |
| | | } |
| | | return options; |
| | | }, []); |
| | | |
| | | }, |
| | | /** 查询类别信息 */ |
| | | getCateInfor() |
| | | { |
| | | let _this = this |
| | | getCategory().then(response=>{ |
| | | |
| | | response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{ |
| | | _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]}) |
| | | }) |
| | | }) |
| | | }, |
| | | // getCateInfor() |
| | | // { |
| | | // let _this = this |
| | | // getCategory().then(response=>{ |
| | | // |
| | | // // response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{ |
| | | // // _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]}) |
| | | // response.data.itemValues.replace("{", "").replace("}", "").split(",").map(elem => { |
| | | // const label = elem.split(":")[0].trim(); |
| | | // const value = parseInt(elem.split(":")[1].trim()); |
| | | // _this.typeOptions.push({ "label": label, "value": value }); |
| | | // }) |
| | | // }) |
| | | // }, |
| | | //类别选择 |
| | | getSrc(type) { |
| | | if (type === '出生证'){ |
| | | getSrc1(type){ |
| | | if(type===0){ |
| | | return '证件' |
| | | }else if(type===1){ |
| | | return '荣誉' |
| | | }else if(type===2){ |
| | | return '资质' |
| | | } |
| | | }, |
| | | //名称选择 |
| | | getSrc(name) { |
| | | if (name === 1){ |
| | | return '出生证' |
| | | }else if(type === '牙科'){ |
| | | return '牙科' |
| | | }else if(type === '内科'){ |
| | | return '内科' |
| | | }else if(name === 2){ |
| | | return '学生证' |
| | | }else if(name === 3){ |
| | | return '毕业证' |
| | | }else if(name === 4){ |
| | | return '结婚证' |
| | | }else if(name === 5){ |
| | | return '户口簿' |
| | | }else if(name === 6){ |
| | | return '独生子女证' |
| | | }else if(name === 7){ |
| | | return '高级职称' |
| | | }else if(name === 8){ |
| | | return '护照' |
| | | }else if(name === 9){ |
| | | return '通行证' |
| | | }else { |
| | | return '其它' |
| | | } |
| | | }, |
| | | |
| | | handleRemove(file) { |
| | | alert(323) |
| | | for(let i = 0; i < this.fileList.length; i++) |
| | | { |
| | | if(this.fileList[i].url==file.url) |
| | | this.$delete(this.fileList,i); |
| | | } |
| | | }, |
| | | handleRemoveFile(file) { |
| | | for(let i = 0; i < this.fileListOther.length; i++) |
| | | { |
| | | if(this.fileListOther[i].url==file.url) |
| | | this.$delete(this.fileListOther,i); |
| | | } |
| | | }, |
| | | // 取消按钮 |
| | | cancel() { |
| | |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | |
| | | this.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | |
| | | /** 查看详细信息 */ |
| | | handleCheck(row){ |
| | | const id = row.id; |
| | | this.$router.push("/self/honor/honorInfo/" + id); |
| | | this.$router.push("/self/Honor/honorInfo/" + id); |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | |
| | | let jd = true |
| | | |
| | | this.$router.push({ |
| | | path:"/self/honor/honorInfo/" + id, |
| | | path:"/self/Honor/honorInfo/" + id, |
| | | query:{ |
| | | detail:jd |
| | | } |
| | |
| | | }, |
| | | /** 提交按钮(数据权限) */ |
| | | submitDataScope: function() { |
| | | |
| | | |
| | | let ul = this.fileList.map(function (elem){ |
| | | return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | |
| | | }); |
| | | } |
| | | }); |
| | | // 清空formDat对象的数据 |
| | | Object.keys(this.formDat).forEach(key => { |
| | | this.formDat[key] = ''; |
| | | }); |
| | | for(let i = 0; i <= this.fileList.length; i++) |
| | | { |
| | | this.handleRemove(this.fileList[0]); |
| | | } |
| | | for(let i = 0; i < this.fileListOther.length; i++){ |
| | | this.handleRemoveFile(this.fileListOther[0]); |
| | | } |
| | | }, |
| | | requestUpload(params) |
| | | { |
| | |
| | | var formData = new FormData(); |
| | | formData.append('uploadFile', file); |
| | | let _this = this |
| | | |
| | | this.uploading = true; |
| | | uploadPic(formData).then(response => { |
| | | let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length) |
| | | |
| | | this.uploading = false; |
| | | this.$modal.msgSuccess("上传成功"); |
| | | if(_this.fot.includes(pth) === true) |
| | | { |
| | | _this.fileList.push({name:response.data.fileName, "url":response.data.url}) |
| | |
| | | }).catch(() => { Message({ message: "导入失败", type: 'error' })}); |
| | | |
| | | } |
| | | }, |
| | | watch: { |
| | | type(value) { |
| | | if (value === '') { |
| | | this.showInput = true; |
| | | } else { |
| | | this.showInput = false; |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | </script> |