From 38febeef0511f6d8812a82f55f440567a2b39c10 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期三, 05 六月 2024 18:07:44 +0800
Subject: [PATCH] 人员管理bug

---
 src/components/view/a6-waste-handover.vue                |  272 +++++++++++++++++++++++++++
 src/components/view/a6-external-personnel-management.vue |  126 ++++++++++++
 static/js/menu.js                                        |    6 
 src/components/view/a6-standard-material-list.vue        |  138 +++++++++++++
 src/components/view/person-manage.vue                    |    2 
 5 files changed, 540 insertions(+), 4 deletions(-)

diff --git a/src/components/view/a6-external-personnel-management.vue b/src/components/view/a6-external-personnel-management.vue
new file mode 100644
index 0000000..bb062f6
--- /dev/null
+++ b/src/components/view/a6-external-personnel-management.vue
@@ -0,0 +1,126 @@
+<style scoped>
+  .title {
+    height: 60px;
+    line-height: 60px;
+  }
+
+  .search {
+    background-color: #fff;
+    height: 80px;
+    display: flex;
+    align-items: center;
+  }
+  .search_thing {
+    display: flex;
+    align-items: center;
+    height: 50px;
+  }
+  .search_label {
+    width: 80px;
+    font-size: 14px;
+    text-align: right;
+  }
+
+  .search_input {
+    width: calc(100% - 120px);
+  }
+  .table {
+    margin-top: 10px;
+    background-color: #fff;
+    width: calc(100% - 40px);
+    height: calc(100% - 60px - 80px - 10px - 40px);
+    padding: 20px;
+  }
+
+</style>
+<template>
+  <div class="below-standard-main">
+    <div style="width: 100%;height: 100%;">
+      <div>
+        <el-row class="title">
+          <el-col :span="12" style="padding-left: 20px;">澶栨潵浜哄憳绠$悊</el-col>
+          <el-col :span="12" style="text-align: right;">
+						<el-button size="medium" type="primary" @click="$refs['ValueTable'].openAddDia('鏂板鎺ュ彛')" v-if="addPower">鏂� 澧�</el-button>
+            <el-button size="medium" @click="$refs['ValueTable'].openDownDia()">瀵� 鍑�</el-button>
+					</el-col>
+        </el-row>
+      </div>
+      <div class="search">
+        <div class="search_thing">
+          <div class="search_label">鏃ユ湡锛�</div>
+          <div class="search_input">
+            <el-date-picker
+              v-model="componentData.entity.sample"
+              format="yyyy-MM-dd HH:mm:ss"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              type="date"
+              size="small"
+              @change="refreshTable()"
+              placeholder="閫夋嫨鏃ユ湡">
+            </el-date-picker>
+          </div>
+        </div>
+        <div class="search_thing" style="padding-left: 30px;">
+          <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+          <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+        </div>
+      </div>
+      <div class="table">
+          <ValueTable ref="ValueTable" :url="$api.unPass.pageInsUnPass" :componentData="componentData"
+          :key="upIndex" />
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+  import ValueTable from '../tool/value-table.vue'
+export default {
+  components: {
+    ValueTable,
+  },
+  data() {
+    return {
+        componentData: {
+          entity: {
+            sample: null,
+            model: null,
+            orderBy: {
+              field: 'id',
+              order: 'asc'
+            }
+          },
+          isIndex: true,
+          showSelect: false,
+          select: false,
+          do: [],
+          tagField: [],
+          selectField: [],
+          requiredAdd: [],
+          requiredUp: []
+        },
+        entityCopy: {},
+        upIndex: 0,
+        stateList: [],
+        addPower:true,
+      }
+  },
+  mounted() {
+    this.entityCopy = this.HaveJson(this.componentData.entity)
+    this.getPower()
+  },
+  methods :{
+    refreshTable() {
+        this.$refs['ValueTable'].selectList()
+      },
+    refresh() {
+        this.componentData.entity = this.HaveJson(this.entityCopy)
+        this.upIndex++
+      },
+    // 鏉冮檺鍒嗛厤
+    getPower(radio) {
+      let power = JSON.parse(sessionStorage.getItem('power'))
+    },
+  }
+}
+</script>
diff --git a/src/components/view/a6-standard-material-list.vue b/src/components/view/a6-standard-material-list.vue
new file mode 100644
index 0000000..d5d3526
--- /dev/null
+++ b/src/components/view/a6-standard-material-list.vue
@@ -0,0 +1,138 @@
+<style scoped>
+  .title {
+    height: 60px;
+    line-height: 60px;
+  }
+
+  .search {
+    background-color: #fff;
+    height: 80px;
+    display: flex;
+    align-items: center;
+  }
+  .search_thing {
+    display: flex;
+    align-items: center;
+    height: 50px;
+  }
+  .search_label {
+    width: 120px;
+    font-size: 14px;
+    text-align: right;
+  }
+
+  .search_input {
+    width: calc(100% - 120px);
+  }
+  .table {
+    margin-top: 10px;
+    background-color: #fff;
+    width: calc(100% - 40px);
+    height: calc(100% - 60px - 80px - 10px - 40px);
+    padding: 20px;
+  }
+
+</style>
+<template>
+  <div class="below-standard-main">
+    <div style="width: 100%;height: 100%;">
+      <div>
+        <el-row class="title">
+          <el-col :span="12" style="padding-left: 20px;">鏍囧噯鐗╄川娓呭崟</el-col>
+          <el-col :span="12" style="text-align: right;">
+						<el-button size="medium" type="primary" @click="$refs['ValueTable'].openAddDia('鏂板鎺ュ彛')" v-if="addPower">鏂� 澧�</el-button>
+            <el-button size="medium" @click="$refs['ValueTable'].openDownDia()">瀵� 鍑�</el-button>
+					</el-col>
+        </el-row>
+      </div>
+      <div class="search">
+        <div class="search_thing">
+          <div class="search_label">鍚嶇О锛�</div>
+          <div class="search_input">
+              <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="componentData.entity.model"
+                        @keyup.enter.native="refreshTable()"></el-input></div>
+        </div>
+        <div class="search_thing">
+          <div class="search_label">鐢熶骇鍘傚锛�</div>
+          <div class="search_input">
+            <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="componentData.entity.sample"
+              @keyup.enter.native="refreshTable()"></el-input>
+          </div>
+        </div>
+        <div class="search_thing" style="padding-left: 30px;">
+          <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+          <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+        </div>
+      </div>
+      <div class="table">
+          <ValueTable ref="ValueTable" :url="$api.unPass.pageInsUnPass" :componentData="componentData"
+          :key="upIndex" />
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+  import ValueTable from '../tool/value-table.vue'
+export default {
+  components: {
+    ValueTable,
+  },
+  data() {
+    return {
+        componentData: {
+          entity: {
+            sample: null,
+            model: null,
+            orderBy: {
+              field: 'id',
+              order: 'asc'
+            }
+          },
+          isIndex: true,
+          showSelect: false,
+          select: false,
+          do: [
+            {
+              id: 'update',
+              font: '缂栬緫',
+              type: 'text',
+              method: 'doDiy',
+              field:['createUserName','updateUserName']
+            },{
+              id: 'delete',
+              font: '鍒犻櫎',
+              type: 'text',
+              method: 'doDiy'
+            }
+          ],
+          tagField: [],
+          selectField: [],
+          requiredAdd: ['model','sample',],
+          requiredUp: []
+        },
+        entityCopy: {},
+        upIndex: 0,
+        stateList: [],
+        addPower:true,
+      }
+  },
+  mounted() {
+    this.entityCopy = this.HaveJson(this.componentData.entity)
+    this.getPower()
+  },
+  methods :{
+    refreshTable() {
+        this.$refs['ValueTable'].selectList()
+      },
+    refresh() {
+        this.componentData.entity = this.HaveJson(this.entityCopy)
+        this.upIndex++
+      },
+    // 鏉冮檺鍒嗛厤
+    getPower(radio) {
+      let power = JSON.parse(sessionStorage.getItem('power'))
+    },
+  }
+}
+</script>
diff --git a/src/components/view/a6-waste-handover.vue b/src/components/view/a6-waste-handover.vue
new file mode 100644
index 0000000..0f996e3
--- /dev/null
+++ b/src/components/view/a6-waste-handover.vue
@@ -0,0 +1,272 @@
+<style scoped>
+  .title {
+    height: 60px;
+    line-height: 60px;
+  }
+
+  .search {
+    background-color: #fff;
+    height: 80px;
+    display: flex;
+    align-items: center;
+  }
+  .search_thing {
+    display: flex;
+    align-items: center;
+    height: 50px;
+  }
+  .search_label {
+    width: 100px;
+    font-size: 14px;
+    text-align: right;
+  }
+
+  .search_input {
+    width: calc(100% - 120px);
+  }
+  .table {
+    margin-top: 10px;
+    background-color: #fff;
+    width: calc(100% - 40px);
+    padding: 20px;
+  }
+  .standard-main{
+    overflow-y: auto;
+    scrollbar-width: none;
+  }
+
+</style>
+<template>
+  <div class="standard-main">
+    <div style="width: 100%;height: 100%;">
+      <div>
+        <el-row class="title">
+          <el-col :span="12" style="padding-left: 20px;">搴熺墿澶勭悊浜ゆ帴璁板綍</el-col>
+          <el-col :span="12" style="text-align: right;">
+						<el-button size="medium" type="primary" @click="$refs['ValueTable'].openAddDia('鏂板鎺ュ彛')" v-if="addPower">鏂� 澧�</el-button>
+            <el-button size="medium" type="primary" @click="openAddDetail" v-if="addPower">鏂板鏄庣粏</el-button>
+            <el-button size="medium" @click="$refs['ValueTable'].openDownDia()">瀵� 鍑�</el-button>
+					</el-col>
+        </el-row>
+      </div>
+      <div class="search">
+        <div class="search_thing">
+          <div class="search_label">鏃ユ湡锛�</div>
+          <div class="search_input">
+            <el-date-picker
+              v-model="componentData.entity.sample"
+              format="yyyy-MM-dd HH:mm:ss"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              type="date"
+              size="small"
+              @change="refreshTable()"
+              placeholder="閫夋嫨鏃ユ湡">
+            </el-date-picker>
+          </div>
+        </div>
+        <div class="search_thing" style="padding-left: 30px;">
+          <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+          <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+        </div>
+      </div>
+      <div class="table">
+        <el-table
+            :data="tableData"
+            style="width: 100%;margin-bottom: 10px;"
+            height="200px">
+            <el-table-column
+              prop="value0"
+              label="鏂囦欢缂栫爜"
+              width="180">
+            </el-table-column>
+            <el-table-column
+              prop="value1"
+              label="NO:"
+              width="180">
+            </el-table-column>
+            <el-table-column
+              prop="value2"
+              label="褰曞叆鏃ユ湡">
+            </el-table-column>
+            <el-table-column
+              prop="value3"
+              label="褰曞叆浜�">
+            </el-table-column>
+            <el-table-column
+              prop="value4"
+              label="鏇存柊浜�">
+            </el-table-column>
+            <el-table-column
+              prop="value5"
+              label="鏇存柊鏃堕棿">
+            </el-table-column>
+          </el-table>
+          <ValueTable ref="ValueTable" :url="$api.unPass.pageInsUnPass" :componentData="componentData"
+          :key="upIndex" style="height: 400px;" />
+      </div>
+    </div>
+    <el-dialog title="鏄庣粏鏂板" :visible.sync="addDetailVisible" width="400px">
+      <div class="body" style="max-height: 60vh;">
+        <el-row>
+          <el-col class="search_thing" :span="22">
+            <div class="search_label"><span class="required-span">* </span>鍚嶇О锛�</div>
+            <div class="search_input">
+              <el-input v-model="form.value0" size="small" placeholder="璇疯緭鍏�"></el-input>
+            </div>
+          </el-col>
+          <el-col class="search_thing" :span="22">
+            <div class="search_label"><span class="required-span">* </span>浣撶Н锛�</div>
+            <div class="search_input">
+              <el-input v-model="form.value1" size="small" placeholder="璇疯緭鍏�"></el-input>
+            </div>
+          </el-col>
+          <el-col class="search_thing" :span="22">
+            <div class="search_label">閫佸鐞嗘棩鏈燂細</div>
+            <div class="search_input">
+              <el-date-picker
+              v-model="form.value2"
+              type="date"
+              size="small"
+              format="yyyy-MM-dd HH:mm:ss"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              placeholder="閫夋嫨鏃ユ湡"
+              style="width: 100%;">
+            </el-date-picker>
+            </div>
+          </el-col>
+          <el-col class="search_thing" :span="22">
+            <div class="search_label">绉讳氦浜猴細</div>
+            <div class="search_input">
+              <el-select v-model="form.value3" placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
+                <el-option
+                  v-for="item in personList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </div>
+          </el-col>
+          <el-col class="search_thing" :span="22">
+            <div class="search_label">鎺ユ敹浜猴細</div>
+            <div class="search_input">
+              <el-select v-model="form.value3" placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
+                <el-option
+                  v-for="item in personList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </div>
+          </el-col>
+          <el-col class="search_thing" :span="22">
+            <div class="search_label">鎺ユ敹鍗曚綅锛�</div>
+            <div class="search_input">
+              <el-select v-model="form.value3" placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
+                <el-option
+                  v-for="item in compList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-row>
+          <el-button @click="noDialogVisible=false,tell=''">鍙� 娑�</el-button>
+          <el-button type="primary" @click="addDetail" :loading="addDetailLoading">纭� 瀹�</el-button>
+        </el-row>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+  import ValueTable from '../tool/value-table.vue'
+export default {
+  components: {
+    ValueTable,
+  },
+  data() {
+    return {
+        componentData: {
+          entity: {
+            sample: null,
+            model: null,
+            orderBy: {
+              field: 'id',
+              order: 'asc'
+            }
+          },
+          isIndex: true,
+          showSelect: false,
+          select: false,
+          do: [
+            {
+              id: 'update',
+              font: '缂栬緫',
+              type: 'text',
+              method: 'doDiy',
+              field:['createUserName','updateUserName']
+            },{
+              id: 'delete',
+              font: '鍒犻櫎',
+              type: 'text',
+              method: 'doDiy'
+            }
+          ],
+          tagField: [],
+          selectField: [],
+          requiredAdd: ['model','sample',],
+          requiredUp: []
+        },
+        tableData:[],
+        entityCopy: {},
+        upIndex: 0,
+        stateList: [],
+        addPower:true,
+        addDetailLoading:false,
+        addDetailVisible:false,
+        form:{},
+        personList:[],
+        compList:[]
+      }
+  },
+  mounted() {
+    this.entityCopy = this.HaveJson(this.componentData.entity)
+    this.getPower()
+  },
+  methods :{
+    refreshTable() {
+        this.$refs['ValueTable'].selectList()
+      },
+    refresh() {
+        this.componentData.entity = this.HaveJson(this.entityCopy)
+        this.upIndex++
+      },
+    // 鏉冮檺鍒嗛厤
+    getPower(radio) {
+      let power = JSON.parse(sessionStorage.getItem('power'))
+    },
+    openAddDetail(){
+      this.form = {}
+      this.addDetailVisible = true
+    },
+    addDetail(){
+      if(!this.form.value0){
+        this.$message.error('璇疯緭鍏ュ悕绉�')
+        return
+      }
+      if(!this.form.value0){
+        this.$message.error('浣撶Н')
+        return
+      }
+      this.addDetailLoading = true
+    }
+  }
+}
+</script>
diff --git a/src/components/view/person-manage.vue b/src/components/view/person-manage.vue
index 57075db..5c39a75 100644
--- a/src/components/view/person-manage.vue
+++ b/src/components/view/person-manage.vue
@@ -289,7 +289,7 @@
             type: 'text',
             method: 'doDiy',
             field: ['roleName', '瑙掕壊=roleId', '瀵嗙爜=password',
-              '濮撳悕EN=nameEn', '骞撮緞=age', '閭=email', '鍗曚綅=company', '绛惧悕=pictureUrl', '涓汉鐓х墖=signatureUrl'
+              '濮撳悕EN=nameEn', '骞撮緞=age', '閭=email', '鍗曚綅=company', '绛惧悕=signatureUrl', '涓汉鐓х墖=pictureUrl'
             ]
           }],
           tagField: {
diff --git a/static/js/menu.js b/static/js/menu.js
index 9c1cba6..024fc74 100644
--- a/static/js/menu.js
+++ b/static/js/menu.js
@@ -368,7 +368,7 @@
 		}, {
 			v: "澶栨潵浜哄憳绠$悊",
 			i: "font icon-erjidaohang",
-			u: "",
+			u: "a6-external-personnel-management",
 			g: "6.3 璁炬柦鍜岀幆澧冩潯浠�",
 			p: ""
 		}, {
@@ -404,7 +404,7 @@
 		}, {
 			v: "搴熺墿澶勭悊浜ゆ帴璁板綍",
 			i: "font icon-erjidaohang",
-			u: "",
+			u: "a6-waste-handover",
 			g: "6.3 璁炬柦鍜岀幆澧冩潯浠�",
 			p: ""
 		}, {
@@ -500,7 +500,7 @@
 		}, {
 			v: "鏍囧噯鐗╄川娓呭崟",
 			i: "font icon-erjidaohang",
-			u: "",
+			u: "a6-standard-material-list",
 			g: "6.5 璁¢噺婧簮鎬�",
 			p: ""
 		}, {

--
Gitblit v1.9.3