Selaa lähdekoodia

电签区初步完成

zhangh 3 vuotta sitten
vanhempi
commit
c3974839ff

+ 9 - 0
src/api/certificate/management.js

@@ -8,4 +8,13 @@ export const singPfxManagementPage = (params) => {
         method: 'get',
         params
     })
+}
+
+//获取系统所有角色划分
+export const queryAllRoleList = (params) => {
+    return request({
+        url: '/api/blade-manager/signPfxFile/queryAllRoleList',
+        method: 'get',
+        params
+    })
 }

+ 11 - 10
src/views/certificate/lists/addList.vue

@@ -13,8 +13,8 @@
         style="width:100%;"
       >
         <el-radio-group v-model="form.certificateType">
-          <el-radio label="1">个人证书</el-radio>
-          <el-radio label="2">企业证书</el-radio>
+          <el-radio :label="1">个人证书</el-radio>
+          <el-radio :label="2">企业证书</el-radio>
         </el-radio-group>
       </el-form-item>
       <el-form-item
@@ -227,7 +227,7 @@ export default {
   data () {
     return {
       form: {
-        certificateType: '1',
+        certificateType: 1,
         certificateUserName: '',
         certificateUserName: '',//所持证书者身份证ID
         enterpriseUnifiedCode: '',//企业统一社会信用代码
@@ -270,15 +270,16 @@ export default {
             certificateNumber: this.form.certificateNumber,
             certificatePassword: this.form.certificatePassword,
           }
-          if (typeof this.form.certificateFileUrl[0].raw == String) {
+          if (this.form.certificateFileUrl[0].name) {
             fromData.certificateFileUrl = await this.addFileInfo(this.form.certificateFileUrl[0].raw)
           } else {
-            fromData.certificateFileUrl = this.form.certificateFileUrl[0].row
+            fromData.certificateFileUrl = this.form.certificateFileUrl[0].raw
           }
-          if (typeof this.form.signatureFileUrl[0].raw == String) {
+
+          if (this.form.signatureFileUrl[0].name) {
             fromData.signatureFileUrl = await this.addFileInfo(this.form.signatureFileUrl[0].raw)
           } else {
-            fromData.signatureFileUrl = this.form.signatureFileUrl[0].row
+            fromData.signatureFileUrl = this.form.signatureFileUrl[0].raw
           }
           let tag = true
           let enterpriseUnifiedCode = ''
@@ -296,7 +297,7 @@ export default {
                 enterpriseUnifiedCode += `${val.projectId}-${val.contractId}-${val.roleId}`
               }
             })
-            fromData.signPfxDeputieList = enterpriseUnifiedCode  //关联项目
+            fromData.projectContractRole = enterpriseUnifiedCode  //关联项目
             fromData.enterpriseUnifiedCode = this.form.enterpriseUnifiedCode
           }
           if (tag) {
@@ -356,8 +357,8 @@ export default {
       console.log(res);
       if (res.code == 200) {
         this.form = res.data
-        this.form.certificateFileUrl = [{ row: res.data.certificateFileUrl }]
-        this.form.signatureFileUrl = [{ row: res.data.certificateFileUrl }]
+        this.form.certificateFileUrl = [{ raw: res.data.certificateFileUrl }]
+        this.form.signatureFileUrl = [{ raw: res.data.signatureFileUrl }]
       }
     },
     async save (da) {//新增

+ 9 - 4
src/views/certificate/management.vue

@@ -38,7 +38,7 @@
         <template slot-scope="scope">
           <el-button
             type="text"
-            @click="see(scope.row)"
+            @click="see(scope.row.contractId)"
           >查看</el-button>
         </template>
       </el-table-column>
@@ -91,7 +91,7 @@ export default {
       })
       console.log(res);
       if (res.code == 200) {
-        // this.tableData = res.data.records
+        this.tableData = res.data.records
         this.total = res.data.total
       }
     },
@@ -106,8 +106,13 @@ export default {
     //#endregion
 
     //#region 
-    see () {
-      this.$router.push({ path: '/certificate/management/see' })
+    see (contractId) {
+      this.$router.push({
+        path: '/certificate/management/see',
+        query: {
+          contractId
+        }
+      })
     },
     //#endregion
   },

+ 133 - 30
src/views/certificate/managements/see.vue

@@ -1,61 +1,164 @@
 <template>
-  <basic-container class="see">
+  <basic-container
+    class="see"
+    style="margin-bottom:50px;"
+  >
+    <el-select
+      style="width:300px;"
+      v-model="value"
+      placeholder="请选择"
+      @change="changePosition"
+      class="marbottom20"
+      clearable
+    >
+      <el-option
+        v-for="item in options"
+        :key="item.roleId"
+        :label="item.roleName"
+        :value="item.roleId"
+      >
+      </el-option>
+    </el-select>
     <el-row :gutter="20">
-      <el-col :span="6">
-        <el-select
-          v-model="value"
-          placeholder="请选择"
-        >
-          <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          >
-          </el-option>
-        </el-select>
+      <el-col
+        :span="6"
+        style="border-right:1px solid #EDEDED;"
+      >
         <el-menu
           default-active="2"
           class="el-menu-vertical-demo"
-          @open="handleOpen"
-          @close="handleClose"
         >
-          <el-submenu index="1">
-            <template slot="title">
-              <i class="el-icon-location"></i>
-              <span>导航一</span>
-            </template>
-            <el-menu-item-group>
-              <el-menu-item index="1-1">选项1</el-menu-item>
-              <el-menu-item index="1-2">选项2</el-menu-item>
-            </el-menu-item-group>
-          </el-submenu>
+          <div
+            v-for="(item,keys) in menuData"
+            :key='keys'
+          >
+            <el-submenu :index="item.roleId">
+              <template slot="title">
+                <i class="el-icon-location"></i>
+                <span>{{item.roleName}}</span>
+              </template>
+              <el-menu-item-group
+                v-for="(val,k) in item.childRoleList"
+                :key='k'
+              >
+                <el-menu-item
+                  :index="val.roleId"
+                  @click="dakairight(val.signPfxFileList)"
+                >{{val.roleName}}</el-menu-item>
+              </el-menu-item-group>
+            </el-submenu>
+          </div>
         </el-menu>
-
       </el-col>
-      <el-col :span="18"></el-col>
+      <el-col :span="18">
+        <div
+          class="martop20"
+          v-for="(item,key) in rightData"
+          :key='key'
+        >
+          <div class="flexBetween ">
+            <div class="flexItemsC">姓名:{{item.createUser}}</div>
+            <div class="flexStar flexItemsC">签名图片:
+              <img
+                style="height:40px;"
+                :src="item.signatureFileUrl"
+              />
+            </div>
+            <div class="flexItemsC">证书:{{item.certificateUserName}}- {{item.certificateFileUrl|urlsplice}}</div>
+            <el-button
+              size="mini"
+              @click="deleteAutograph(item.id)"
+            >删除签名配置</el-button>
+          </div>
+          <el-divider></el-divider>
+        </div>
+      </el-col>
     </el-row>
   </basic-container>
 </template>
 
 <script>
+import { remove, } from "@/api/certificate/list";
+import { queryAllRoleList, } from "@/api/certificate/management";
 export default {
   data () {
     return {
       options: [],
       value: '',
+      menuData: [],
+      rightData: [],
     }
   },
   methods: {
     //#region 左侧菜单
-    handleClose () {
+    dakairight (signPfxFileList) {
+      this.rightData = signPfxFileList
+    },
+    changePosition () {//下拉框change事件
+      if (this.value && this.options.length > 0) {
+        this.options.forEach(val => {
+          if (val.roleId == this.value) {
+            this.menuData = [val]
+            this.rightData = []
+          }
+        })
+      }
+    },
+    deleteAutograph (ids) {
+      let _that = this
+      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        _that.remove(ids)
 
+      }).catch(() => {
+      });
     },
-    handleOpen () {
+    //#endregion
 
+    //#region 接口
+    async queryAllRoleList (contractId) {
+      const { data: res } = await queryAllRoleList({ contractId })
+      console.log(res);
+      if (res.code == 200) {
+        this.options = res.data
+        this.menuData = res.data
+      }
+    },
+    async remove (ids) {
+      const { data: res } = await remove({ ids })
+      console.log(res);
+      if (res.code == 200) {
+        this.$message({
+          type: 'success',
+          message: '删除成功!'
+        });
+      }
     },
     //#endregion
   },
+  filters: {
+    urlsplice (url) {
+      let da = ''
+      if (url) {
+        da = url.slice(url.indexOf('/', url.indexOf('/', url.indexOf('/', url.indexOf('/', url.indexOf('/', url.indexOf('/', 0) + 1) + 1) + 1) + 1) + 1) + 1)
+      }
+      return da
+    },
+  },
+  watch: {
+    'value' (val) {
+      if (!val) {
+        this.menuData = this.options
+        this.rightData = []
+      }
+    },
+  },
+  created () {
+    this.queryAllRoleList(this.$route.query.contractId)
+  }
 }
 </script>
 <style lang="scss" scoped>