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