Parcourir la source

fix:文件查询授权补充文件类型查询

liujiayin il y a 3 ans
Parent
commit
7daa667810
1 fichiers modifiés avec 164 ajouts et 113 suppressions
  1. 164 113
      src/views/permissions/details/fileEchart.vue

+ 164 - 113
src/views/permissions/details/fileEchart.vue

@@ -1,18 +1,26 @@
 <template>
-    <div>
-        <div style="text-align: center">
-            <!--表头-->
-            <div class="form-header">
-                <div class="title ibps-tc">用户查阅文件授权</div>
-            </div>
-            <el-transfer style="text-align: left; display: inline-block" v-model="permissionFilesKey" filterable
-                :render-content="renderFunc" :titles="['受限文件', '可查阅文件']" :button-texts="['受限', '可查阅']" :format="{
+  <div>
+    <div style="text-align: center">
+      <!--表头-->
+      <div class="form-header">
+        <div class="title ibps-tc">用户查阅文件授权</div>
+      </div>
+      <el-transfer style="text-align: left; display: inline-block"
+                   v-model="permissionFilesKey"
+                   filterable
+                   :filter-method="filterMethod"
+                   :render-content="renderFunc"
+                   :titles="['受限文件', '可查阅文件']"
+                   :button-texts="['受限', '可查阅']"
+                   :format="{
                     noChecked: '${total}',
                     hasChecked: '${checked}/${total}'
-                }" @change="handleChange" :data="allFiles">
-            </el-transfer>
-        </div>
+                }"
+                   @change="handleChange"
+                   :data="allFiles">
+      </el-transfer>
     </div>
+  </div>
 </template>
 
 
@@ -20,140 +28,183 @@
 
 <script>
 import { getLmitedFile, getUserByFile, saveUserByFile } from '@/api/permission/file'
+import curdPost from '@/business/platform/form/utils/custom/joinCURD.js'
 
 export default {
-    props: {
-        id: {
-            type: [String, Number]
-        },
+  props: {
+    id: {
+      type: [String, Number]
     },
-    data() {
-        return {
-            idT: '',
-            allFilesDatas: [],// 所有受控文件,与个人无关
-            allFiles: [],
-            noPermissionFiles: [],
-            permissionFiles: [],
-            permissionFilesKey: [],
-            renderFunc(h, option) {
-                return <span>{option.label}</span>;
-            }
-        };
+  },
+  data() {
+    return {
+      idT: '',
+      allFilesDatas: [],// 所有受控文件,与个人无关
+      allFiles: [],
+      noPermissionFiles: [],
+      permissionFiles: [],
+      permissionFilesKey: [],
+      renderFunc(h, option) {
+        return <span>{option.type}-{option.label}</span>;
+      },
+      filterMethod(query, item) {
+        let name = item.label + '-' + item.type
+        return name.includes(query);
+      }
+    };
+  },
+
+  methods: {
+    handleChange(value, direction, movedKeys) {
+      let paramsDatas = []
+      for (let i of value) {
+        let paramsData = {}
+        let filterDatas = this.allFilesDatas.filter(item => item.wenJianId == i)
+        paramsData["yongHuId"] = this.idT
+        paramsData["wenJianId"] = filterDatas[0].wenJianId
+        paramsData["wenJianMingChe"] = filterDatas[0].wenJianMingChe
+        paramsDatas.push(paramsData)
+      }
+      saveUserByFile(paramsDatas).then(res => {
+      }).catch(res => {
+      })
     },
-
-    methods: {
-        handleChange(value, direction, movedKeys) {
-            let paramsDatas = []
-            for (let i of value) {
-                let paramsData = {}
-                let filterDatas = this.allFilesDatas.filter(item => item.wenJianId == i)
-                paramsData["yongHuId"] = this.idT
-                paramsData["wenJianId"] = filterDatas[0].wenJianId
-                paramsData["wenJianMingChe"] = filterDatas[0].wenJianMingChe
-                paramsDatas.push(paramsData)
-            }
-            saveUserByFile(paramsDatas).then(res => {
-            }).catch(res => {
-            })
-        },
-        getFormData(id) {
-            getLmitedFile(id).then(res => {
-                for (let i of res.variables.data) {
-                    this.allFilesDatas.push(i)
-                    let fileData = {}
-                    fileData["key"] = i.wenJianId
-                    fileData["label"] = i.wenJianMingChe
-                    fileData["yongHuId"] = id
-                    this.noPermissionFiles.push(fileData)
-                    this.allFiles.push(fileData)
-                }
-            }).catch(res => {
-            })
-            getUserByFile(id).then(res => {
-                for (let i of res.variables.data) {
-                    this.allFilesDatas.push(i)
-                    let filterFile = {}
-                    filterFile["key"] = i.wenJianId
-                    filterFile["label"] = i.wenJianMingChe
-                    filterFile["yongHuId"] = id
-                    this.permissionFiles.push(filterFile)
-                    this.permissionFilesKey.push(i.wenJianId)
-                    this.allFiles.push(filterFile)
-
-                }
-            }).catch(res => {
-            })
-        },
-    },
-    watch: {
-        id: {
-            immediate: true,
-            handler: function (val, oldVal) {
-                this.allFilesDatas = []
-                this.permissionFiles = []
-                this.noPermissionFiles = []
-                this.allFiles = []
-                this.permissionFilesKey = []
-                this.idT = val
-                this.getFormData(val)
-            },
+    getFormData(id) {
+      // 还未授权的的文件
+      let noPerSql = `select id_ wenJianId,
+        wen_jian_ming_che wenJianMingChe,
+        wen_jian_lie_xing neiLeiXing,
+        wai_bu_wen_jian_l waiLeiXing
+        FROM t_wjgl
+        WHERE wen_jian_lie_xing IN(
+            '生物安全手册(SWAQ)','行政管理制度(ZD)','检测类(JC-SOP)','仪器设备类(YQ-SOP)','期间核查类(HC-SOP)','环境设施类(HJ-SOP)','质量或技术管理类(ZQ-SOP)'
+            )
+        AND id_ NOT IN (  SELECT wen_jian_id_ id_  FROM t_wjcysqb WHERE  yong_hu_id_= '${id}' ) order by wai_bu_wen_jian_l,wen_jian_lie_xing asc`
+      curdPost('sql', noPerSql).then(res => {
+        for (let i of res.variables.data) {
+          this.allFilesDatas.push(i)
+          let fileData = {}
+          fileData["key"] = i.wenJianId
+          fileData["label"] = i.wenJianMingChe
+          fileData["type"] = i.neiLeiXing ? i.neiLeiXing : i.waiLeiXing
+          fileData["yongHuId"] = id
+          this.noPermissionFiles.push(fileData)
+          this.allFiles.push(fileData)
         }
+      }).catch(res => {
+      })
+      let hadPer = `select qx.*,wj.wen_jian_lie_xing,wj.wai_bu_wen_jian_l  FROM 
+      t_wjcysqb qx LEFT JOIN t_wjgl wj ON qx.wen_jian_id_ = wj.id_ WHERE qx.yong_hu_id_= '${id}' order by wj.wai_bu_wen_jian_l,wj.wen_jian_lie_xing asc
+        `
+      curdPost('sql', hadPer).then(res => {
+        for (let i of res.variables.data) {
+          this.allFilesDatas.push(i)
+          let filterFile = {}
+          filterFile["key"] = i.wenJianId
+          filterFile["label"] = i.wenJianMingChe
+          filterFile["yongHuId"] = id
+          this.permissionFiles.push(filterFile)
+          this.permissionFilesKey.push(i.wenJianId)
+          this.allFiles.push(filterFile)
+        }
+      }).catch(res => {
+      })
+      //   getLmitedFile(id).then(res => {
+      //     for (let i of res.variables.data) {
+      //       this.allFilesDatas.push(i)
+      //       let fileData = {}
+      //       fileData["key"] = i.wenJianId
+      //       fileData["label"] = i.wenJianMingChe
+      //       fileData["yongHuId"] = id
+      //       this.noPermissionFiles.push(fileData)
+      //       this.allFiles.push(fileData)
+      //     }
+      //   }).catch(res => {
+      //   })
+      //   getUserByFile(id).then(res => {
+      //     for (let i of res.variables.data) {
+      //       this.allFilesDatas.push(i)
+      //       let filterFile = {}
+      //       filterFile["key"] = i.wenJianId
+      //       filterFile["label"] = i.wenJianMingChe
+      //       filterFile["yongHuId"] = id
+      //       this.permissionFiles.push(filterFile)
+      //       this.permissionFilesKey.push(i.wenJianId)
+      //       this.allFiles.push(filterFile)
+      //     }
+      //   }).catch(res => {
+      //   })
+    },
+  },
+  watch: {
+    id: {
+      immediate: true,
+      handler: function (val, oldVal) {
+        this.allFilesDatas = []
+        this.permissionFiles = []
+        this.noPermissionFiles = []
+        this.allFiles = []
+        this.permissionFilesKey = []
+        this.idT = val
+        this.getFormData(val)
+      },
     }
+  }
 };
 </script>
   
 
 <style  scoped lang="less">
 .form-header {
-    border-bottom: 1px solid #2b34410d;
-    margin-bottom: 5px;
-
-    .title {
-        font-size: 16px;
-        font-weight: bold;
-        color: #222;
-        text-align: left;
-        padding: 8px 10px 10px;
-        margin: 0;
-    }
-
-    .desc {
-        word-wrap: break-word;
-        word-break: normal;
-        text-indent: 0;
-        line-height: 1.6;
-        margin: 0 0 11px;
-        padding: 3px 30px 8px;
-    }
+  border-bottom: 1px solid #2b34410d;
+  margin-bottom: 5px;
+
+  .title {
+    font-size: 16px;
+    font-weight: bold;
+    color: #222;
+    text-align: left;
+    padding: 8px 10px 10px;
+    margin: 0;
+  }
+
+  .desc {
+    word-wrap: break-word;
+    word-break: normal;
+    text-indent: 0;
+    line-height: 1.6;
+    margin: 0 0 11px;
+    padding: 3px 30px 8px;
+  }
 }
 
 .transfer-footer {
-    margin-left: 20px;
-    padding: 6px 5px;
+  margin-left: 20px;
+  padding: 6px 5px;
 }
 
 /deep/.el-transfer {
-    width: 100%;
+  width: 100%;
 }
 
 /deep/ .el-transfer-panel {
-    width: 40%;
+  width: 40%;
 }
 
 /deep/ .el-transfer__buttons {
-    width: 10%;
-    padding: 0 10px;
+  width: 10%;
+  padding: 0 10px;
 }
 
 /deep/ .el-transfer-panel__body {
-    height: auto;
+  height: auto;
 }
 
 /deep/.el-transfer-panel__list {
-    height: 650px;
+  height: 650px;
 }
 
 /deep/ .el-button {
-    width: 100%;
+  width: 100%;
 }
 </style>