Selaa lähdekoodia

公有私有编辑元素

zhangh 2 vuotta sitten
vanhempi
commit
de4f25e446

+ 31 - 1
src/api/AssessmentArea/AssessmentArea.js

@@ -1,8 +1,38 @@
 import request from '@/router/axios';
 
+//分页获取列表
 export const queryUserAssessmentPage = (params) => {
     return request({
-        url: '/api/blade-manager/assessmentUser/queryUserAssessmentPage',
+        url: '/api/blade-business/businessUserOpinion/queryUserAssessmentPage',
+        method: 'get',
+        params
+    })
+}
+
+//取消考核
+export const cancelAssessment = (data) => {
+    return request({
+        url: '/api/blade-manager/assessmentUser/cancelAssessment',
+        method: 'post',
+        data
+    })
+}
+
+//获取所有维护人员
+export const findMaintenanceUser = (params) => {
+    return request({
+        url: '/api/blade-manager/assessmentUser/findMaintenanceUser',
+        method: 'get',
+        params
+    })
+}
+
+
+
+//查询所有考核人员的考核记录
+export const queryAllUserAssessmentContent = (params) => {
+    return request({
+        url: '/api/blade-manager/assessmentUser/queryAllUserAssessmentContent',
         method: 'get',
         params
     })

+ 20 - 0
src/api/manager/wbstree.js

@@ -230,4 +230,24 @@ export const exportBatchTemplate = (params) => {
         method: 'get',
         params
     })
+}
+
+
+// 公有编辑元素
+export const updateBatchNodeTableInfo = (data) => {
+    return request({
+        url: '/api/blade-manager/wbsTree/updateBatchNodeTableInfo',
+        method: 'post',
+        data
+    })
+}
+
+
+// 私有元素
+export const updateBatchNodeTableInfo2 = (data) => {
+    return request({
+        url: '/api/blade-manager/wbsPrivate/updateBatchNodeTableInfo',
+        method: 'post',
+        data
+    })
 }

+ 82 - 13
src/views/AssessmentArea/index.vue

@@ -2,31 +2,33 @@
   <basic-container class="AssessmentArea">
     <div>
       <el-select
-        v-model="value"
+        v-model="userId"
         placeholder="请选择"
       >
         <el-option
           v-for="item in options"
-          :key="item.value"
-          :label="item.label"
-          :value="item.value"
+          :key="item.id"
+          :label="item.name"
+          :value="item.id"
         >
         </el-option>
       </el-select>
 
       <el-date-picker
-        v-model="value"
+        class="marleft20"
+        v-model="time"
         type="datetimerange"
         align="right"
         start-placeholder="开始日期"
         end-placeholder="结束日期"
+        value-format='yyyy-MM-dd hh-mm'
         :default-time="['12:00:00', '08:00:00']"
       >
       </el-date-picker>
-      </el-date-picker>
       <el-button
         type="primary"
         class="marleft20"
+        @click="search()"
       >搜索</el-button>
     </div>
     <el-table
@@ -74,12 +76,19 @@
         prop="fileUrlList"
         label="图片"
       >
+        <template slot-scope="scope">
+          <el-button>图片</el-button>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作">
+        <template slot-scope="scope">
+          <el-button @click="CancelAppraisal(scope.row)">取消考核</el-button>
+        </template>
       </el-table-column>
-      <el-table-column label="操作"> </el-table-column>
     </el-table>
     <el-pagination
       background
-      class="martop20"
+      class="martop20 flexEnd"
       layout="prev, pager, next"
       :total="total"
       @size-change="handleSizeChange"
@@ -92,12 +101,13 @@
 </template>
 
 <script>
-import { queryUserAssessmentPage } from "@/api/AssessmentArea/AssessmentArea.js";
+import { queryUserAssessmentPage, cancelAssessment, findMaintenanceUser, queryAllUserAssessmentContent } from "@/api/AssessmentArea/AssessmentArea.js";
 export default {
   data () {
     return {
-      value: '',
+      userId: '',
       options: [],
+      time: [],
       tableData: [],
       total: 0,
       pageIndex: 1,
@@ -108,27 +118,86 @@ export default {
     //#region 分页
     handleSizeChange (val) {//
       this.pagesize = val
+      this.queryUserAssessmentPage()
     },
     handleCurrentChange (val) {//
       this.pageIndex = val
+      this.queryUserAssessmentPage()
+    },
+    //#endregion
+
+    //#region table表
+    search () {//搜索
+      this.pageIndex = 1
+      this.queryUserAssessmentPage()
+    },
+    CancelAppraisal (row) {//取消考核
+      // let _that = this
+      this.$confirm('是否确认取消考核', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.cancelAssessment()
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        });
+      });
     },
     //#endregion
 
     //#region 接口
-    async queryUserAssessmentPage () {
+    async queryUserAssessmentPage () {//分页获取
+      let times = []
+      if (this.time.length > 0) {
+        times = this.time
+      }
       const { data: res } = await queryUserAssessmentPage({
+        startTime: times[0],
+        endTime: times[1],
+        userId: this.userId,
         size: this.pagesize,
         current: this.pageIndex
       })
       console.log(res);
       if (res.code == 200) {
-
+        this.tableData = res.data.records
+        this.total = res.data.total
       }
-    }
+    },
+    async cancelAssessment (row) {//取消考核
+      const { data: res } = await cancelAssessment({
+        id: '',
+        assessmentId: row.assessmentId,
+      })
+      console.log(res);
+      if (res.code == 200) {
+        this.$message({
+          type: 'success',
+          message: '取消考核成功!'
+        });
+      }
+    },
+    async findMaintenanceUser () {//获取所有维护人员
+      const { data: res } = await findMaintenanceUser()
+      console.log(res);
+      if (res.code == 200) {
+        this.options = res.data
+      }
+    },
+    async queryAllUserAssessmentContent () {//条形图数据
+      const { data: res } = await queryAllUserAssessmentContent()
+      console.log(res);
+    },
     //#endregion
   },
   created () {
+    // this.findMaintenanceUser()
     this.queryUserAssessmentPage()
+
+    // this.queryAllUserAssessmentContent()
   }
 }
 </script>

+ 140 - 1
src/views/manager/projectinfo/tree.vue

@@ -194,6 +194,12 @@
               icon="el-icon-document-copy"
               class="text-icon"
             ></el-button>
+            <i
+              class="el-icon-edit-outline marleft10"
+              size="26"
+              style="color:#409EFF;cursor: pointer;"
+              @click="editEditElementForm()"
+            ></i>
           </p>
           <el-table
             :data="formData"
@@ -305,6 +311,83 @@
         </template>
       </el-col>
     </el-row>
+
+    <!-- 编辑元素表单信息 -->
+    <el-dialog
+      title="编辑元素表单信息"
+      :visible="editElementFormTag"
+      width="60%"
+      :modal-append-to-body="false"
+    >
+      <div>
+        <el-table
+          :data="formDatass"
+          border
+          style="width: 100%"
+        >
+          <el-table-column
+            prop="tableName"
+            label="表名"
+          >
+            <template slot-scope="scope">
+              <el-input
+                v-model="scope.row.tableName"
+                placeholder="请输入表名称"
+              ></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="tableType"
+            label="表类型"
+          >
+            <template slot-scope="scope">
+              <el-select
+                v-model="scope.row.tableType"
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="(item,key) in tableTypelist"
+                  :key="key"
+                  :label="item.dictValue"
+                  :value="item.dictKey"
+                >
+                </el-option>
+              </el-select>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="tableOwner"
+            label="所属方"
+          >
+            <template slot-scope="scope">
+              <el-select
+                v-model="scope.row.tableOwner"
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="(item,key) in ownerTypeList"
+                  :key="key"
+                  :label="item.dictValue"
+                  :value="item.dictKey"
+                >
+                </el-option>
+              </el-select>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <span
+        slot="footer"
+        class="dialog-footer"
+      >
+        <el-button @click="editElementFormTag = false">取 消</el-button>
+        <el-button
+          type="primary"
+          @click="editeditElementFormMF()"
+        >确 定</el-button>
+      </span>
+    </el-dialog>
+
     <!-- 调整表单模板 -->
     <div
       v-if="excelHtml"
@@ -1253,7 +1336,7 @@ import ManualSorting from '@/components/WbsTree/ManualSorting'
 import dynamicExcel from "./treeTemplate/dynamicExcel.vue";
 import {
   saveFormAndElement, selectFormElements,
-  importWbsTree, findWbsTreePrivateSameLevel, wbsTreePrivateSort, parameters, saveOrUpdateBatch, keymap
+  importWbsTree, findWbsTreePrivateSameLevel, wbsTreePrivateSort, parameters, saveOrUpdateBatch, keymap, updateBatchNodeTableInfo2
 } from "@/api/manager/wbstree";
 import {
   saveElement, remove as removeElement, updateBatchElements, getTemplate,
@@ -1268,6 +1351,8 @@ import { getList, tabLazytreeAll, saveLinkTab, getExcelHtml } from '@/api/exctab
 export default {
   data () {
     return {
+      formDatass: [],
+      editElementFormTag: false,
       jiedianId: '',
       //#region
       sortTag: false,
@@ -1416,6 +1501,7 @@ export default {
       })
     },
     getNodeDetail (data, node) {
+      console.log(111);
       let parentName = '';
       if (node.parent.data) {
         parentName = node.parent.data.title;
@@ -2222,6 +2308,59 @@ export default {
       }
     },
     //#endregion
+
+    //#region 元素表单信息
+    editEditElementForm () {//标记元素
+      if (this.formData.length) {
+        let da = []
+        this.formDatass = [...this.formData]
+        this.formDatass.forEach(val => {
+          da.push({
+            tableType: val.tableType - 0,
+            tableOwner: val.tableOwner - 0,
+            pkeyId: val.pkeyId,
+            tableName: val.tableName,
+          })
+        })
+        this.formDatass = da
+        this.editElementFormTag = true
+      }
+    },
+    editeditElementFormMF () {//保存按钮
+      let da = []
+      let tag = true
+      this.formDatass.forEach(val => {
+        if (!val.tableName || !val.tableType || !val.tableOwner) {
+          tag = false
+          return
+        } else {
+          da.push({
+            pkeyId: val.pkeyId,
+            deptName: val.tableName,
+            tableType: val.tableType,
+            tableOwner: val.tableOwner,
+          })
+        }
+
+      })
+      if (tag) {
+        this.updateBatchNodeTableInfo2(da)
+      } else {
+        this.$message({
+          type: 'success',
+          message: '请填写完整元素表单的所有信息!',
+        })
+      }
+    },
+    async updateBatchNodeTableInfo2 (da) {//共有编辑元素
+      const { data: res } = await updateBatchNodeTableInfo2(da)
+      console.log(res);
+      if (res.code == 200) {
+        this.editElementFormTag = false
+        this.updateNodeTable()
+      }
+    },
+    //#endregion
   },
   watch: {
     'GLExcelFrom.search' (val) {

+ 139 - 4
src/views/manager/wbsinfo/edit.vue

@@ -222,6 +222,12 @@
               icon="el-icon-document-copy"
               class="text-icon"
             ></el-button>
+            <i
+              class="el-icon-edit-outline marleft10"
+              size="26"
+              style="color:#409EFF;cursor: pointer;"
+              @click="editEditElementForm()"
+            ></i>
             <i
               class="el-icon-sort marleft10"
               size="26"
@@ -320,6 +326,82 @@
       </el-col>
     </el-row>
 
+    <!-- 编辑元素表单信息 -->
+    <el-dialog
+      title="编辑元素表单信息"
+      :visible="editElementFormTag"
+      width="60%"
+      :modal-append-to-body="false"
+    >
+      <div>
+        <el-table
+          :data="formDatass"
+          border
+          style="width: 100%"
+        >
+          <el-table-column
+            prop="tableName"
+            label="表名"
+          >
+            <template slot-scope="scope">
+              <el-input
+                v-model="scope.row.tableName"
+                placeholder="请输入表名称"
+              ></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="tableType"
+            label="表类型"
+          >
+            <template slot-scope="scope">
+              <el-select
+                v-model="scope.row.tableType"
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="(item,key) in tableTypelist"
+                  :key="key"
+                  :label="item.dictValue"
+                  :value="item.dictKey"
+                >
+                </el-option>
+              </el-select>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="tableOwner"
+            label="所属方"
+          >
+            <template slot-scope="scope">
+              <el-select
+                v-model="scope.row.tableOwner"
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="(item,key) in ownerTypeList"
+                  :key="key"
+                  :label="item.dictValue"
+                  :value="item.dictKey"
+                >
+                </el-option>
+              </el-select>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <span
+        slot="footer"
+        class="dialog-footer"
+      >
+        <el-button @click="editElementFormTag = false">取 消</el-button>
+        <el-button
+          type="primary"
+          @click="editeditElementFormMF()"
+        >确 定</el-button>
+      </span>
+    </el-dialog>
+
     <!-- 导入元素 -->
     <el-dialog
       title="导入元素"
@@ -1312,7 +1394,7 @@
 import ManualSorting from '@/components/WbsTree/ManualSorting'
 import {
   getLazytree, getDetail, update, selectByNodeTable, getAlltree,
-  saveFormAndElement, selectFormElements, removeTableById, findWbsTreeSameLevel, wbsTreeSort, findWbsTreeTableSameLevel, wbsTreeTableSort, parameters, saveOrUpdateBatch, keymap, importwbsTreeFormBatch, exportBatchTemplate,
+  saveFormAndElement, selectFormElements, removeTableById, findWbsTreeSameLevel, wbsTreeSort, findWbsTreeTableSameLevel, wbsTreeTableSort, parameters, saveOrUpdateBatch, keymap, importwbsTreeFormBatch, exportBatchTemplate, updateBatchNodeTableInfo,
   importWbsTree, exportTemplate, remove as removeTreeNode
 } from "@/api/manager/wbstree";
 import {
@@ -1324,6 +1406,8 @@ import { mapGetters } from "vuex";
 export default {
   data () {
     return {
+      formDatass: [],
+      editElementFormTag: false,
       ImportElementdata: {
 
       },
@@ -1410,7 +1494,6 @@ export default {
   },
   computed: {
     ...mapGetters(["userInfo"]),
-
     dialogTitle: function () {
       let text = '节点';
       if (this.leftType == 1) {
@@ -1525,7 +1608,6 @@ export default {
     },
 
     getNodeDetail (data, node) {
-      console.log(data.value)
       let parentName = '';
       if (node.parent.data) {
         parentName = node.parent.data.title;
@@ -2309,7 +2391,60 @@ export default {
     },
     xiazaielement () {
       this.exportBatchTemplate()
-    }
+    },
+    //#endregion
+
+    //#region 元素表单信息
+    editEditElementForm () {//标记元素
+      if (this.formData.length) {
+        let da = []
+        this.formDatass = [...this.formData]
+        this.formDatass.forEach(val => {
+          da.push({
+            tableType: val.tableType - 0,
+            tableOwner: val.tableOwner - 0,
+            id: val.id,
+            tableName: val.tableName,
+          })
+        })
+        this.formDatass = da
+        this.editElementFormTag = true
+      }
+    },
+    editeditElementFormMF () {//保存按钮
+      let da = []
+      let tag = true
+      this.formDatass.forEach(val => {
+        if (!val.tableName || !val.tableType || !val.tableOwner) {
+          tag = false
+          return
+        } else {
+          da.push({
+            id: val.id,
+            deptName: val.tableName,
+            tableType: val.tableType,
+            tableOwner: val.tableOwner,
+          })
+        }
+
+      })
+      if (tag) {
+        this.updateBatchNodeTableInfo(da)
+      } else {
+        this.$message({
+          type: 'success',
+          message: '请填写完整元素表单的所有信息!',
+        })
+      }
+    },
+    async updateBatchNodeTableInfo (da) {//共有编辑元素
+      const { data: res } = await updateBatchNodeTableInfo(da)
+      console.log(res);
+      if (res.code == 200) {
+        this.editElementFormTag = false
+        this.updateNodeTable()
+      }
+    },
     //#endregion
   },
   components: {

+ 2 - 2
vue.config.js

@@ -27,10 +27,10 @@ module.exports = {
             '/api': {
                 //本地服务接口地址
                 // target: 'http://localhost',
-                target: 'http://192.168.4.6',
+                // target: 'http://192.168.4.6',
                 // target: 'http://47.110.251.215:8090',
                 // target: 'http://192.168.4.12',
-                // target: 'http://192.168.4.44',
+                target: 'http://192.168.4.44',
                 //远程演示服务地址,可用于直接启动项目
                 //target: 'https://saber.bladex.vip/api',
                 ws: true,