yusheng hace 1 año
padre
commit
e5c5a3e9e4

+ 11 - 0
src/api/documentManagement/index.js

@@ -27,3 +27,14 @@ export async function getPhotoInfo (id) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+
+/**
+ * 删除
+ */
+export async function deleteIdentityphoto(data) {
+  const res = await request.delete('/main/identityphoto/delete', { data });
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 27 - 1
src/enum/dict.js

@@ -208,7 +208,8 @@ export const fineRule = [
     label: '文本',
     value: '1',
     pid: '6',
-    reg: '文本'
+    reg: '文本',
+    reg: ''
   }
   // {
   //   label: 'A-Z0-9',
@@ -229,3 +230,28 @@ export const produceTypeList = [
     value: 3
   }
 ];
+ 
+//持证类型
+export const holderTypeOptions = [
+  {
+    label: '个人',
+    value: '1'
+  },
+
+  {
+    label: '供应商',
+    value: '3'
+  },
+  {
+    label: '客户',
+    value: '4'
+  },
+  {
+    label: '企业资质',
+    value: '2'
+  },
+  {
+    label: '受托企业资质',
+    value: '6'
+  }
+];

+ 140 - 132
src/views/codeManagement/businessCode/codeValueList.vue

@@ -56,7 +56,7 @@
         </el-row>
       </el-form>
     </el-tab-pane>
-    <el-tab-pane label="码值" >
+    <el-tab-pane label="码值">
       <ele-pro-table
         ref="table"
         :columns="columns"
@@ -88,7 +88,7 @@
         <template v-slot:remark="{ row }">
           <el-input v-model="row.remark" @change="valueChange(row)"></el-input>
         </template>
-        <template v-slot:toolbar v-if="form.roughRule!=4">
+        <template v-slot:toolbar v-if="form.roughRule != 4">
           <el-button type="primary" @click.native="openEdit('add')">
             增加
           </el-button>
@@ -98,142 +98,150 @@
   </el-tabs>
   <!-- 数据表格 -->
 </template>
-   
-  <script>
-import { roughRule, fineRule } from '@/enum/dict.js';
-import { saveSegment } from '@/api/businessCode';
 
-export default {
-  props: {
-    // 上级
-    parentData: {
-      type: Object,
-      default: () => {}
-    }
-  },
+<script>
+  import { roughRule, fineRule } from '@/enum/dict.js';
+  import { saveSegment } from '@/api/businessCode';
 
-  data() {
-    return {
-      form: {
-        roughRuleName: '',
-        fineRuleName: '',
-        name: '', //码段名称
-        businessCodeCategoryId: '', //分类id
-        length: '', //长度
-        delimiter: '', //间隔符
-        roughRule: '', //粗规则
-        fineRule: '', //细规则
-        value: [],
-        remark: '' //描述
-      },
-      tableList: [],
-      // 表格列配置
-      columns: []
-    };
-  },
-  created() {},
-  // watch: {
-  //   parentData(){
-  //     this.init()
-  //   }
-  // },
-  methods: {
-    reload() {
-      this.form = JSON.parse(JSON.stringify(this.parentData));
-      this.tableList = this.form.value;
-      this.form['roughRuleName'] = roughRule.find(
-        (item) => item.value == this.form.roughRule
-      )?.label;
-      let _fineRule = fineRule.filter(
-        (item) => item.pid == this.form.roughRule
-      );
-      this.form['fineRuleName'] = _fineRule.find(
-        (item) => item.value == this.form.fineRule
-      )?.label;
-      this.setColumns();
+  export default {
+    props: {
+      // 上级
+      parentData: {
+        type: Object,
+        default: () => {}
+      }
     },
-    setColumns() {
-      this.columns = [
-        {
-          width: 45,
-          type: 'selection',
-          columnKey: 'selection',
-          align: 'center'
-        },
-        {
-          label:
-            '编码值' +
-            '(规则:' +
-            this.form.fineRuleName +
-            ',长度:' +
-            (this.form.length||'') +
-            ')',
-          prop: 'value',
-          width: 240,
-          slot: 'value',
-          showOverflowTooltip: true,
-          fixed: 'left'
-        },
-        {
-          prop: 'remark',
-          slot: 'remark',
-          label: '描述',
-          showOverflowTooltip: true
+
+    data() {
+      return {
+        form: {
+          roughRuleName: '',
+          fineRuleName: '',
+          name: '', //码段名称
+          businessCodeCategoryId: '', //分类id
+          length: '', //长度
+          delimiter: '', //间隔符
+          roughRule: '', //粗规则
+          fineRule: '', //细规则
+          value: [],
+          remark: '' //描述
         },
-        {
-          columnKey: 'action',
-          label: '操作',
-          width: 200,
-          align: 'center',
-          resizable: false,
-          slot: 'action',
-          showOverflowTooltip: true,
-          fixed: 'right'
-        }
-      ];
+        tableList: [],
+        // 表格列配置
+        columns: []
+      };
     },
-    valueChange(row) {
-      console.log(this.isReg(row), 'this.isReg(row)');
-      if (this.isReg(row)) {
+    created() {},
+    // watch: {
+    //   parentData(){
+    //     this.init()
+    //   }
+    // },
+    methods: {
+      reload() {
+        this.form = JSON.parse(JSON.stringify(this.parentData));
+        this.tableList = this.form.value;
+        this.form['roughRuleName'] = roughRule.find(
+          (item) => item.value == this.form.roughRule
+        )?.label;
+        let _fineRule = fineRule.filter(
+          (item) => item.pid == this.form.roughRule
+        );
+        this.form['fineRuleName'] = _fineRule.find(
+          (item) => item.value == this.form.fineRule
+        )?.label;
+        this.setColumns();
+      },
+      setColumns() {
+        this.columns = [
+          {
+            width: 45,
+            type: 'selection',
+            columnKey: 'selection',
+            align: 'center'
+          },
+          {
+            label:
+              '编码值' +
+              '(规则:' +
+              this.form.fineRuleName +
+              ',长度:' +
+              (this.form.length || '') +
+              ')',
+            prop: 'value',
+            width: 240,
+            slot: 'value',
+            showOverflowTooltip: true,
+            fixed: 'left'
+          },
+          {
+            prop: 'remark',
+            slot: 'remark',
+            label: '描述',
+            showOverflowTooltip: true
+          },
+          {
+            columnKey: 'action',
+            label: '操作',
+            width: 200,
+            align: 'center',
+            resizable: false,
+            slot: 'action',
+            showOverflowTooltip: true,
+            fixed: 'right'
+          }
+        ];
+      },
+      valueChange(row) {
+        console.log(this.isReg(row), 'this.isReg(row)');
+        if (this.isReg(row)) {
+          this.save();
+        }
+      },
+      isReg(row) {
+        if (this.form.roughRule == 6) {
+          if (row.value.length == this.form.length) {
+            return true;
+          } else {
+            return false;
+          }
+        }
+        let _fineRule = fineRule.filter(
+          (item) => item.pid == this.form.roughRule
+        );
+        let reg = _fineRule.find(
+          (item) => item.value == this.form.fineRule
+        )?.reg;
+        let regexp = '/^' + reg + '{' + this.form.length + '}$/';
+        return RegExp(eval(regexp)).test(row.value);
+      },
+      /* 显示编辑 */
+      openEdit() {
+        this.tableList.push({
+          value: '',
+          remark: ''
+        });
+      },
+      /* 保存编辑 */
+      save() {
+        this.form.value = this.tableList;
+        saveSegment(this.form)
+          .then((msg) => {
+            this.$message.success('操作成功');
+            this.$emit('done', this.form);
+          })
+          .catch((e) => {
+            this.loading = false;
+          });
+      },
+      /* 删除 */
+      remove(index) {
+        this.tableList.splice(index, 1);
         this.save();
+      },
+      done() {
+        this.$emit('done', this.parentData);
       }
-    },
-    isReg(row) {
-      let _fineRule = fineRule.filter(
-        (item) => item.pid == this.form.roughRule
-      );
-      let reg = _fineRule.find((item) => item.value == this.form.fineRule)?.reg;
-      let regexp = '/^' + reg + '{' + this.form.length + '}$/';
-      return RegExp(eval(regexp)).test(row.value);
-    },
-    /* 显示编辑 */
-    openEdit() {
-      this.tableList.push({
-        value: '',
-        remark: ''
-      });
-    },
-    /* 保存编辑 */
-    save() {
-      this.form.value = this.tableList;
-      saveSegment(this.form)
-        .then((msg) => {
-          this.$message.success('操作成功');
-          this.$emit('done', this.form);
-        })
-        .catch((e) => {
-          this.loading = false;
-        });
-    },
-    /* 删除 */
-    remove(index) {
-      this.tableList.splice(index, 1);
-      this.save()
-    },
-    done() {
-      this.$emit('done', this.parentData);
     }
-  }
-};
+  };
 </script>
-  

+ 39 - 53
src/views/documentManagement/certificateManagement/components/add-dialog.vue

@@ -3,9 +3,18 @@
   <el-dialog :title="title" :visible.sync="dialogVisible" @close="close" width="60%">
     <el-form ref="form" :model="form" :rules="rules" label-width="82px">
       <el-row :gutter="15">
+        <el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
+          <el-form-item prop="holderType" label="持证类型">
+            <el-select style="width: 100%" v-model="form.holderType" @change="holderTypeChange">
+              <el-option :label="item.label" :value="item.value" v-for="(item, index) in holderTypeOptions" :key="index">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
         <el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
           <el-form-item prop="type" label="证件类型">
-            <DictSelection v-model="form.type" dictName="证件类型"></DictSelection>
+            <DictSelection v-model="form.type" dictName="证件类型" v-if="['1'].includes(form.holderType)"></DictSelection>
+            <DictSelection v-model="form.type" dictName="客户/供应商资质类型" v-if="['2','3','4','5','6'].includes(form.holderType)"></DictSelection>
           </el-form-item>
         </el-col>
         <el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
@@ -26,16 +35,9 @@
             <DictSelection v-model="form.status" dictName="规则状态"></DictSelection>
           </el-form-item>
         </el-col>
+  
         <el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
-          <el-form-item prop="holderType" label="持证类型">
-            <el-select style="width: 100%" v-model="form.holderType" @change="holderTypeChange">
-              <el-option :label="item.label" :value="item.value" v-for="(item, index) in holderTypeOptions" :key="index">
-              </el-option>
-            </el-select>
-          </el-form-item>
-        </el-col>
-        <el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
-          <el-form-item prop="holder" label="持证人">
+          <el-form-item prop="holder" label="持证对象">
             <el-input v-if="form.holderType != 2" v-model="form.holder" clearable readonly placeholder="请选择"
               @click.native="openStaffSelection"></el-input>
               <ele-tree-select
@@ -67,8 +69,8 @@
           </el-form-item>
         </el-col>
         <el-col v-bind="styleResponsive ? { sm: 24 } : { span: 24 }">
-          <el-form-item prop="fileObj" label="证照图片">
-            <fileUpload v-model="form.fileObj" module="main" :showLib="true" :limit="5" />
+          <el-form-item prop="fileObj" label="附件">
+            <fileMain v-model="form.fileObj"  />
           </el-form-item>
         </el-col>
         <el-col v-bind="styleResponsive ? { sm: 24 } : { span: 24 }">
@@ -83,7 +85,7 @@
     <supplierSelection ref="supplierSelectionRef" @confirm="confirmStaffSelection" />
     <customerSelection ref="customerSelectionRef" @confirm="confirmStaffSelection" />
     <div slot="footer" class="dialog-footer">
-      <el-button size="small" @click="submit" type="primary">提 交</el-button>
+      <el-button size="small" @click="save" type="primary">保 存</el-button>
       <el-button size="small" @click="close">关 闭</el-button>
     </div>
   </el-dialog>
@@ -92,33 +94,35 @@
 <script>
   import staffSelection from './staffSelection.vue';
   import { saveOrEdit, getPhotoInfo } from '@/api/documentManagement';
-  import fileUpload from '@/components/upload/fileUpload';
-  import imgUpload from '@/components/upload/imgUpload';
+  import fileMain from '@/components/addDoc/index.vue';
+
   import { getCode } from '@/api/ruleManagement/matter';
   import productTable from './productTable.vue';
   import supplierSelection from './supplierSelection.vue';
   import customerSelection from './customerSelection.vue';
   import { listOrganizations } from '@/api/system/organization';
-
+  import { holderTypeOptions } from '@/enum/dict.js';
+  const defaultForm = {
+        code: '',
+        holder: '',
+        holderId: '',
+        type:'',
+        date: [],
+        fileObj: [],
+        holderType: '4',
+        status:1,
+      };
   export default {
     components: {
-      fileUpload,
-      imgUpload,
       staffSelection,
       productTable,
       supplierSelection,
-      customerSelection
+      customerSelection,
+      fileMain
     },
     //注册组件
     data() {
-      const defaultForm = {
-        code: '',
-        holder: '',
-        holderId: '',
-        date: [],
-        fileObj: [],
-        holderType: '1',
-      };
+
       return {
         dialogVisible: false,
         levelOptions: [
@@ -147,35 +151,18 @@
             { required: true, trigger: 'change', message: '请选择有效期' }
           ],
           holder: [
-            { required: true, trigger: 'change', message: '请输入持证人' }
+            { required: true, trigger: 'change', message: '请选择持证对象' }
           ],
           status: [
             { required: true, trigger: 'change', message: '请选择状态' }
           ],
           fileObj: [
-            { required: true, trigger: 'change', message: '请选择证照图片' }
+            { required: true, trigger: 'change', message: '请选择' }
           ],
         },
         form: { ...defaultForm },
         title: '新增',
-        holderTypeOptions:[
-          {
-            label: '个人',
-            value: '1'
-          },
-          {
-            label: '企业自身',
-            value: '2'
-          },
-          {
-            label: '供应商',
-            value: '3'
-          },
-          {
-            label: '客户',
-            value: '4'
-          }
-        ],
+        holderTypeOptions,
         companyData: [], //公司分类
       };
     },
@@ -201,7 +188,7 @@
       openStaffSelection() {
         if (this.form.holderType == 1) {
           this.$refs.staffSelection.open([]);
-        } else if (this.form.holderType == 3) {
+        } else if (this.form.holderType == 3||this.form.holderType == 6) {
           this.$refs.supplierSelectionRef.open([]);
         } else if (this.form.holderType == 4) {
           this.$refs.customerSelectionRef.open([]);
@@ -215,9 +202,6 @@
           this.getInfo(row.id);
         } else {
           this.title = '新增';
-          this.$refs.form.resetFields();
-          this.form = { ...this.defaultForm };
-          this.getOrderCode();
         }
       },
       async getOrderCode() {
@@ -229,6 +213,7 @@
         const data = await getPhotoInfo(id);
         this.form = {
           ...data,
+          type:data.type+'',
           date: [data.validityStartTime, data.validityEndTime],
           holderType: data.holderType || '1'
         };
@@ -240,11 +225,11 @@
       close() {
         this.dialogVisible = false;
         // this.$refs.form.resetFields()
-        this.form = { ...this.defaultForm };
+        this.form = { defaultForm };
         this.$refs.productTableRef.initData()
       },
 
-      submit() {
+      save() {
         this.$refs.form.validate((valid) => {
           if (!valid) {
             return false;
@@ -281,6 +266,7 @@
         }
         this.form.holder = ''
         this.form.holderId = ''
+        this.form.type = ''
       },
 
       //查询公司分类

+ 63 - 67
src/views/documentManagement/certificateManagement/components/detail-dialog.vue

@@ -1,55 +1,51 @@
 <template>
   <el-dialog title="证照详情" :visible.sync="dialogVisible" width="60%">
-     <el-descriptions title="" :column="3" size="medium" border>
-       <el-descriptions-item>
-     	<template slot="label"> 证照编号 </template>
-     	{{form.code}}
-       </el-descriptions-item>
-       <el-descriptions-item>
-     	<template slot="label"> 类型 </template>
-      	{{getDictValue('证件类型', form.type)}}
-       </el-descriptions-item>
-       <el-descriptions-item>
-     	<template slot="label"> 持证人</template>
-     	{{form.holder}}
-       </el-descriptions-item>
-       <el-descriptions-item :span="2">
-     	  <template slot="label"> 有效期至 </template>
-     	  {{form.validityStartTime + ' — ' + form.validityEndTime}}
-       </el-descriptions-item>
-       <el-descriptions-item>
-       	<template slot="label"> 状态 </template>
-     	  {{getDictValue('规则状态', form.status)}}
-       </el-descriptions-item>
-       <el-descriptions-item>
-       	<template slot="label"> 颁发时间 </template>
-       	{{form.enactorTime}}
-       </el-descriptions-item>
-       <el-descriptions-item>
-       	<template slot="label"> 创建人 </template>
-     	   {{form.createUserName}}
-       </el-descriptions-item>
-       <el-descriptions-item>
-       	<template slot="label"> 创建机构 </template>
-       	{{form.createUserDeptName}}
-       </el-descriptions-item>
-       <el-descriptions-item>
-       	<template slot="label"> 创建时间 </template>
-      	{{form.createTime}}
-       </el-descriptions-item>
-       <el-descriptions-item :span="3">
-       	<template slot="label"> 证件图片 </template>
-        <el-image
-          style="width: 100px; height: 100px"
-          :src="form.imageUrl"
-          :preview-src-list="[form.imageUrl]"
-        />
-       </el-descriptions-item>
-       <el-descriptions-item :span="3">
-       	<template slot="label"> 备注 </template>
-     	  {{form.remark}}
-       </el-descriptions-item>
-     </el-descriptions>
+    <el-descriptions title="" :column="3" size="medium" border>
+      <el-descriptions-item>
+        <template slot="label"> 证照编号 </template>
+        {{ form.code }}
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template slot="label"> 类型 </template>
+        {{ getDictValue(form.holderType==1?'证件类型':'客户/供应商资质类型', form.type) }}
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template slot="label"> 持证对象</template>
+        {{ form.holder }}
+      </el-descriptions-item>
+      <el-descriptions-item :span="2">
+        <template slot="label"> 有效期至 </template>
+        {{ form.validityStartTime + ' — ' + form.validityEndTime }}
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template slot="label"> 状态 </template>
+        {{ getDictValue('规则状态', form.status) }}
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template slot="label"> 颁发时间 </template>
+        {{ form.enactorTime }}
+      </el-descriptions-item>
+      <el-descriptions-item>
+        <template slot="label"> 创建人 </template>
+        {{ form.createUserName }}
+      </el-descriptions-item>
+      <!-- <el-descriptions-item>
+        <template slot="label"> 创建机构 </template>
+        {{ form.createUserDeptName }}
+      </el-descriptions-item> -->
+      <el-descriptions-item>
+        <template slot="label"> 创建时间 </template>
+        {{ form.createTime }}
+      </el-descriptions-item>
+      <el-descriptions-item :span="3">
+        <template slot="label"> 附件 </template>
+        <fileMain v-model="form.fileObj" type="view"></fileMain>
+      </el-descriptions-item>
+      <el-descriptions-item :span="3">
+        <template slot="label"> 备注 </template>
+        {{ form.remark }}
+      </el-descriptions-item>
+    </el-descriptions>
     <div slot="footer" class="dialog-footer">
       <el-button size="small" @click="dialogVisible = false">关 闭</el-button>
     </div>
@@ -59,39 +55,39 @@
 <script>
   import { getPhotoInfo } from '@/api/documentManagement';
   import dictMixins from '@/mixins/dictMixins';
-  import { getImageUrl } from '@/utils/file.js';
+  import fileMain from '@/components/addDoc/index.vue';
+
   export default {
     mixins: [dictMixins],
-    components: {},
+    components: {fileMain},
     //注册组件
-    data () {
+    data() {
       return {
         dialogVisible: false,
-        form: { }
+        form: {}
       };
     },
-    computed: {
-    },
-    created () {
+    computed: {},
+    created() {
       this.requestDict('证件类型');
+      this.requestDict('客户/供应商资质类型');
       this.requestDict('规则状态');
     },
     methods: {
-      open (row) {
+      open(row) {
         this.dialogVisible = true;
-        this.getInfo(row.id)
-      },
-      async getInfo(id){
-        const data = await getPhotoInfo(id)
-        this.form = data
-        this.form.imageUrl  = getImageUrl(data.fileObj.storePath)
+        this.getInfo(row.id);
       },
+      async getInfo(id) {
+        const data = await getPhotoInfo(id);
+        this.form = data;
+      }
     }
   };
 </script>
 
 <style lang="scss">
- .el-form-item{
-    margin-bottom:20px!important;
- }
+  .el-form-item {
+    margin-bottom: 20px !important;
+  }
 </style>

+ 1 - 1
src/views/documentManagement/certificateManagement/components/product-list.vue

@@ -105,7 +105,7 @@
         radio: null,
         dictList: {},
         selection: [],
-        ids:[]
+        // ids:[]
       };
     },
     watch: {},

+ 1 - 1
src/views/documentManagement/certificateManagement/components/productTable.vue

@@ -17,7 +17,7 @@
       </template>
       <!-- 操作列 -->
       <template v-slot:action="scope">
-        <el-popconfirm v-if="!isContractId" class="ele-action" title="确定要删除吗?" @confirm="remove(scope.$index)">
+        <el-popconfirm  class="ele-action" title="确定要删除吗?" @confirm="remove(scope.$index)">
           <template v-slot:reference>
             <el-link type="danger" :underline="false" icon="el-icon-delete">
               删除

+ 162 - 112
src/views/documentManagement/certificateManagement/index.vue

@@ -15,30 +15,36 @@
       >
         <!-- 工具栏 -->
         <template v-slot:toolbar>
-          <el-button type="primary" icon="el-icon-plus" @click="handleUpload()">新建</el-button>
+          <el-button type="primary" icon="el-icon-plus" @click="handleUpload()"
+            >新建</el-button
+          >
           <!-- <el-button type="primary" @click="handleUpload">导入</el-button> -->
         </template>
         <template v-slot:code="{ row }">
-          <el-link type="primary" :underline="false" @click="openDetail(row)">{{row.code}}</el-link>
-          <p class="ele-text-info">
-             {{getDictValue('证件类型', row.type)}}
+          <el-link type="primary" :underline="false" @click="openDetail(row)">{{
+            row.code
+          }}</el-link>
+          <p class="ele-text-info" v-if="['1'].includes(row.holderType)">
+            {{ getDictValue('证件类型', row.type) }}
+          </p>
+          <p
+            class="ele-text-info"
+            v-if="['2', '3', '4', '5', '6'].includes(row.holderType)"
+          >
+            {{ getDictValue('客户/供应商资质类型', row.type) }}
           </p>
         </template>
         <template v-slot:time="{ row }">
-          <p>起:{{row.validityStartTime}}</p>
-          <p class="ele-text-info">止:{{row.validityEndTime}}</p>
+          <p>起:{{ row.validityStartTime }}</p>
+          <p class="ele-text-info">止:{{ row.validityEndTime }}</p>
         </template>
         <template v-slot:createUser="{ row }">
-          <p>{{row.createUserName}}</p>
-          <p>{{row.createUserDeptName}}</p>
-          <p class="ele-text-info">{{row.createTime}}</p>
+          <p>{{ row.createUserName }}</p>
+          <p>{{ row.createUserDeptName }}</p>
+          <p class="ele-text-info">{{ row.createTime }}</p>
         </template>
         <template v-slot:picture="{ row }">
-          <el-image
-            style="width: 100px; height: 100px"
-            :src="row.fileObj[0]?.storePath"
-            :preview-src-list="row.fileObj.map(item => item.storePath)"
-          />
+          <fileMain v-model="row.fileObj" type="view"></fileMain>
         </template>
         <template v-slot:action="{ row }">
           <el-link
@@ -49,6 +55,17 @@
           >
             修改
           </el-link>
+          <el-popconfirm
+            class="ele-action"
+            title="确定要删除此信息吗?"
+            @confirm="remove([row.id])"
+          >
+            <template v-slot:reference>
+              <el-link type="danger" :underline="false" icon="el-icon-delete">
+                删除
+              </el-link>
+            </template>
+          </el-popconfirm>
         </template>
       </ele-pro-table>
     </el-card>
@@ -58,109 +75,142 @@
 </template>
 
 <script>
-import tabMixins from '@/mixins/tableColumnsMixin';
+  import tabMixins from '@/mixins/tableColumnsMixin';
+
+  import certificateSearch from './components/certificate-search';
+  import addDialog from './components/add-dialog.vue';
+  import detailDialog from './components/detail-dialog.vue';
+  import { getPhotoList, deleteIdentityphoto } from '@/api/documentManagement';
+  import dictMixins from '@/mixins/dictMixins';
+  import { getImageUrl } from '@/utils/file.js';
+  import { deepClone } from '@/utils';
+  import { holderTypeOptions } from '@/enum/dict.js';
+  import fileMain from '@/components/addDoc/index.vue';
 
-import { getFile, getFileList } from '@/api/system/file/index.js';
-import certificateSearch from './components/certificate-search';
-import addDialog from './components/add-dialog.vue';
-import detailDialog from './components/detail-dialog.vue';
-import { getPhotoList } from '@/api/documentManagement';
-import dictMixins from '@/mixins/dictMixins';
-import { getImageUrl } from '@/utils/file.js';
-import { deepClone } from '@/utils';
-export default {
-  mixins: [dictMixins, tabMixins],
-  components: { certificateSearch, addDialog , detailDialog },
-    data () {
-    return {
-      columns: [
-        {
-          label: '序号',
-          type: 'index',
-          width: 55,
-          align: 'center',
-          fixed: 'left'
-        },
-        {
-          label: '证照编号',
-          prop: 'code',
-          slot: 'code',
-            width:180
-        },
-        {
-          label: '状态',
-          prop: 'status',
-          formatter: (row) => {
-            return this.getDictValue('规则状态', row.status);
+  export default {
+    mixins: [dictMixins, tabMixins],
+    components: { certificateSearch, addDialog, detailDialog, fileMain },
+    data() {
+      return {
+        columns: [
+          {
+            label: '序号',
+            type: 'index',
+            width: 55,
+            align: 'center',
+            fixed: 'left'
+          },
+          {
+            label: '持证类型',
+            align: 'center',
+            prop: 'holderType',
+            formatter: (row) => {
+              return holderTypeOptions.find(
+                (item) => item.value == row.holderType
+              )?.label;
+            },
+            width: 150
+          },
+          {
+            align: 'center',
+            label: '证照编号',
+            prop: 'code',
+            slot: 'code',
+            width: 180
+          },
+          {
+            label: '状态',
+            align: 'center',
+            prop: 'status',
+            formatter: (row) => {
+              return this.getDictValue('规则状态', row.status);
+            }
+          },
+          {
+            label: '执证对象',
+            align: 'center',
+            prop: 'holder'
+          },
+          {
+            align: 'center',
+            label: '有效期限',
+            prop: 'time',
+            slot: 'time',
+            minWidth: '180',
+            showOverflowTooltip: true
+          },
+          {
+            label: '创建人信息',
+            align: 'center',
+            prop: 'createUser',
+            slot: 'createUser',
+            minWidth: '200',
+            showOverflowTooltip: true
+          },
+          {
+            label: '证照',
+            align: 'center',
+            prop: 'picture',
+            slot: 'picture'
+          },
+          {
+            label: '备注',
+            align: 'center',
+            prop: 'remark',
+            minWidth: '100',
+            showOverflowTooltip: true
+          },
+          {
+            columnKey: 'action',
+            label: '操作',
+            align: 'center',
+            width: 200,
+            align: 'center',
+            resizable: false,
+            slot: 'action',
+            showOverflowTooltip: true
           }
-        },
-        {
-          label: '执证人',
-            prop:'holder'
-        },
-        {
-          label: '有效期限',
-          prop: 'time',
-          slot: 'time',
-          minWidth: '180',
-          showOverflowTooltip: true
-        },
-        {
-          label: '创建人信息',
-          prop: 'createUser',
-          slot: 'createUser',
-          minWidth: '200',
-          showOverflowTooltip: true
-        },
-        {
-          label: '证照',
-          prop: 'picture',
-          slot: 'picture'
-        },
-        {
-          label: '备注',
-          prop: 'remark',
-          minWidth: '100',
-          showOverflowTooltip: true
-        },
-        {
-          columnKey: 'action',
-          label: '操作',
-          width: 80,
-          align: 'left',
-          resizable: false,
-          slot: 'action',
-          showOverflowTooltip: true
-        }
-      ],
-      pageSize: this.$store.state.tablePageSize,
-      cacheKeyUrl: '7597dd71-documentManagement-certificateManagement'
-    };
-  },
-    created () {
-    this.requestDict('证件类型');
-    this.requestDict('规则状态');
-  },
-  methods: {
-      async datasource ({ page, where, limit }) {
-        const data = await getPhotoList({  ...where, pageNum: page, size: limit });
-        const res = deepClone(data)
-        res.list.map(item=>{
-           item.imageUrl  = getImageUrl(item.fileObj.storePath)
-        })
-        return res
-    },
-      reload (where = {}) {
-      this.$refs.table.reload({ where });
+        ],
+        pageSize: this.$store.state.tablePageSize,
+        cacheKeyUrl: '7597dd71-documentManagement-certificateManagement'
+      };
     },
-      handleUpload (row) {
-      this.$refs.addDialogRef.open(row);
+    created() {
+      this.requestDict('证件类型');
+      this.requestDict('客户/供应商资质类型');
+      this.requestDict('规则状态');
     },
-      openDetail(row){
-      this.$refs.detailDialogRef.open(row);
+    methods: {
+      async datasource({ page, where, limit }) {
+        const data = await getPhotoList({
+          ...where,
+          pageNum: page,
+          size: limit
+        });
+        const res = deepClone(data);
+        res.list.map((item) => {
+          item.imageUrl = getImageUrl(item.fileObj.storePath);
+        });
+        return res;
+      },
+      reload(where = {}) {
+        this.$refs.table.reload({ where });
+      },
+      //删除接口
+      remove(delData) {
+        deleteIdentityphoto(delData).then((res) => {
+          this.$message.success('删除成功!');
+          this.reload();
+        });
+      },
+      handleUpload(row) {
+        this.$refs.addDialogRef.open(row);
+      },
+      openDetail(row) {
+        this.$refs.detailDialogRef.open(row);
+      }
     }
-  }
-};
+  };
 </script>
 
 <style class=""></style>

+ 1 - 1
vue.config.js

@@ -36,7 +36,7 @@ module.exports = {
     proxy: {
       // 当我们的本地的请求 有/api的时候,就会代理我们的请求地址向另外一个服务器发出请求
       '/api': {
-        target: 'http://192.168.1.251:18086',
+        target: 'http://192.168.1.105:18086',
         // target: 'http://192.168.1.158:18086',
         // target: 'http://192.168.1.176:18086',
         // target: 'http://192.168.1.251:18086',