From ed4eef49411cd7e673d1f9a16ef3f716f9ca1c28 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期二, 25 二月 2025 17:46:11 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue | 156 +++++++------------ src/views/CNAS/resourceDemand/facilitiesEnvironment/index.vue | 6 src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management-dia.vue | 45 ++-- src/api/cnas/resourceDemand/foreignRegister/foreignRegister.js | 65 ++++++++ src/api/cnas/process/reportResults.js | 24 ++ src/views/CNAS/process/reportResults/index.vue | 173 +++++++++------------ 6 files changed, 245 insertions(+), 224 deletions(-) diff --git a/src/api/cnas/process/reportResults.js b/src/api/cnas/process/reportResults.js index 4f140af..a7f25d6 100644 --- a/src/api/cnas/process/reportResults.js +++ b/src/api/cnas/process/reportResults.js @@ -2,11 +2,11 @@ import request from "@/utils/request"; //8鎶ュ憡缁撴灉-瀵煎嚭 -export function exportProcessReport(query) { +export function exportProcessReport(data) { return request({ url: "/processReport/exportProcessReport", - method: "get", - params: query, + method: "post", + data: data, }); } @@ -27,3 +27,21 @@ data: data, }); } + +//8鎶ュ憡缁撴灉-鍒犻櫎 +export function delProcessReport(query) { + return request({ + url: "/processReport/delProcessReport", + method: "delete", + params: query, + }); +} + +//8鎶ュ憡缁撴灉-鍒楄〃 +export function pageProcessReport(query) { + return request({ + url: "/processReport/pageProcessReport", + method: "get", + params: query, + }); +} diff --git a/src/api/cnas/resourceDemand/foreignRegister/foreignRegister.js b/src/api/cnas/resourceDemand/foreignRegister/foreignRegister.js new file mode 100644 index 0000000..7811cf5 --- /dev/null +++ b/src/api/cnas/resourceDemand/foreignRegister/foreignRegister.js @@ -0,0 +1,65 @@ +import request from '@/utils/request' + +// 澶栨潵浜哄憳鍒嗛〉鏌ヨ +export function pageForeignRegister(query) { + return request({ + url: '/foreignRegister/pageForeignRegister', + method: 'get', + params: query + }) +} + +// 澶栨潵浜哄憳鏌ョ湅璇︽儏 +export function getForeignRegisterOne(query) { + return request({ + url: '/foreignRegister/getForeignRegisterOne', + method: 'get', + params: query + }) +} + +// 鑾峰彇鐢ㄦ埛鍒楄〃 +export function selectUserCondition(query) { + return request({ + url: "/system/newUser/selectUserCondition", + method: "get", + params: query, + }); +} + +// 澶栨潵浜哄憳鏂板 +export function addForeignRegister(query) { + return request({ + url: '/foreignRegister/addForeignRegister', + method: 'post', + data: query + }) +} + +// 澶栨潵浜哄憳淇敼 +export function updateForeignRegister(query) { + return request({ + url: '/foreignRegister/updateForeignRegister', + method: 'post', + data: query + }) +} + +//澶栨潵浜哄憳鍒犻櫎 +export function delForeignRegister(query) { + return request({ + url: '/foreignRegister/delForeignRegister', + method: 'delete', + params: query + }) +} + +// 瀵煎嚭澶栨潵浜哄憳 +export function exportForeignRegister(query) { + return request({ + url: "/foreignRegister/exportForeignRegister", + method: "get", + responseType: "blob", + params: query, + }); +} diff --git a/src/views/CNAS/process/reportResults/index.vue b/src/views/CNAS/process/reportResults/index.vue index dd4403e..f87bb11 100644 --- a/src/views/CNAS/process/reportResults/index.vue +++ b/src/views/CNAS/process/reportResults/index.vue @@ -1,12 +1,5 @@ <template> <div class="report-results"> - <el-row class="title"> - <el-col :span="12" style="padding-left: 20px;text-align: left;">鎶ュ憡缁撴灉</el-col> - <el-col :span="12" style="text-align: right;"> - <el-button size="medium" type="primary" @click="handleDown" :loading="outLoading" v-if="outPower">瀵煎嚭</el-button> - <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">鏂板</el-button> - </el-col> - </el-row> <div class="search"> <div class="search_thing"> <div class="search_label">妫�楠屾姤鍛婄紪鍙凤細</div> @@ -17,12 +10,15 @@ <el-button size="small" @click="refresh()">閲� 缃�</el-button> <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> </div> + <div class="btn"> + <el-button size="medium" type="primary" @click="handleDown" :loading="outLoading" v-if="outPower">瀵煎嚭</el-button> + <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">鏂板</el-button> + </div> </div> <div class="table"> - <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 290px)'" - :page="page" @pagination="pagination"></lims-table> - <!-- <ValueTable ref="ValueTable" :url="$api.processReport.pageProcessReport" - :delUrl="$api.processReport.delProcessReport" :componentData="componentData" :key="upIndex" /> --> + <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 270px)'" + :page="page" @pagination="pagination" :isSelection="true" + :handleSelectionChange="handleSelectionChange"></lims-table> </div> <el-dialog :title="title" :visible.sync="addDialogVisible" width="400px" top="6vh"> <el-row> @@ -114,7 +110,9 @@ import { exportProcessReport, doProcessReport, - addProcessReport + addProcessReport, + pageProcessReport, + delProcessReport } from '@/api/cnas/process/reportResults.js' import { selectUserCondition, @@ -128,50 +126,6 @@ outLoading: false, addPower: true, outPower: true, - componentData: { - entity: { - insReportCode: null, - // sendUserName: null, - orderBy: { - field: 'createTime', - order: 'desc' - } - }, - isIndex: true, - showSelect: true, - select: true, - selectMethod: 'handleChangeTask', - do: [ - { - id: 'handleWork', - font: '淇敼', - type: 'text', - method: 'handleWork' - }, - { - id: 'delete', - font: '鍒犻櫎', - type: 'text', - method: 'doDiy' - } - ], - tagField: {}, - selectField: { - sendUser: { - select: [] - }, - signatory: { - select: [] - }, - }, - // addUpload:['signatoryUrl'], - requiredAdd: [], - requiredUp: [], - needSort: [], - inputType: '' - }, - entityCopy: {}, - upIndex: 0, personList: [], title: '鏂板', addDialogVisible: false, @@ -183,20 +137,18 @@ queryParams: {}, tableData: [], column: [ - { label: "缂栧彿", prop: "number" }, - { label: "杈呭姪椤圭洰鍚嶇О", prop: "auxiliaryProject", width: "120px" }, + { label: "妫�楠屾姤鍛婄紪鍙�", prop: "insReportCode" }, + { label: "椤垫暟", prop: "pages", width: "120px" }, { - label: "瀹為獙瀹�", - prop: "laboratory", - dataType: "tag", - formatData: (params) => { - return this.laboratoryList.find((m) => m.value == params).label; - }, + label: "鍙戦�佷唤鏁�", + prop: "number", }, - { label: "鍗曚綅", prop: "unit" }, - { label: "鏍稿噯宸ユ椂", prop: "approvedWorkingHour" }, - { label: "閮ㄩ棬", prop: "department" }, - { label: "澶囨敞", prop: "remarks" }, + { label: "鍙戝線浣曞", prop: "send" }, + { label: "鍙戦�佹柟寮�", prop: "method" }, + { label: "鍙戦�佹棩鏈�", prop: "sendTime" }, + { label: "鍙戦�佷汉", prop: "sendUserName" }, + { label: "绛炬敹浜�", prop: "signatoryName" }, + { label: "澶囨敞", prop: "remark" }, { dataType: "action", fixed: "right", @@ -206,12 +158,7 @@ name: "缂栬緫", type: "text", clickFun: (row) => { - this.openAdd("缂栬緫", row); - }, - showHide: (row) => { - return this.checkPermi([ - "performance:manHour:workTimeConfig:edit", - ]); + this.handleWork(row); }, }, { @@ -219,11 +166,6 @@ type: "text", clickFun: (row) => { this.handleDelete(row); - }, - showHide: (row) => { - return this.checkPermi([ - "performance:manHour:workTimeConfig:del", - ]); }, }, ], @@ -239,7 +181,7 @@ }, mounted() { // this.entityCopy = this.HaveJson(this.componentData.entity); - // this.getPower() + this.getList() this.getAuthorizedPerson() }, methods: { @@ -277,14 +219,12 @@ this.$message.warning('璇烽�夋嫨瑕佸鍑虹殑鏁版嵁') return } - // html瀵煎嚭涓簑ord锛屾牱瀛愬お涓戜簡锛屼唬鐮佸厛鏀剧潃鍚� - // exportHtmlToWord(this.$refs.content,'妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃') this.outLoading = true exportProcessReport({ ids: this.mutilSelect.map(m => m.id) }).then(res => { this.outLoading = false if (res.code === 201) return this.$message.success('瀵煎嚭鎴愬姛') - const url = this.javaApi + '/word/' + res.message; + const url = this.javaApi + '/word/' + res.data; this.$download.saveAs(url, "鎶ュ憡缁撴灉"); }) }, @@ -295,13 +235,38 @@ } this.addDialogVisible = true; }, - refreshTable() { - this.$refs['ValueTable'].selectList() + getList() { + this.tableLoading = true; + let param = { ...this.queryParams, ...this.page }; + delete param.total; + pageProcessReport({ ...param }) + .then((res) => { + this.tableLoading = false; + if (res.code === 200) { + this.tableData = res.data.records; + this.page.total = res.data.total; + } + }) + .catch((err) => { + this.tableLoading = false; + }); + }, + pagination({ page, limit }) { + this.page.current = page; + this.page.size = limit; + this.getList(); }, refresh() { - this.componentData.entity = this.HaveJson(this.entityCopy) - this.upIndex++ - this.refreshTable() + this.queryParams = {}; + this.page.current = 1; + this.getList(); + }, + refreshTable() { + this.page.current = 1; + this.getList(); + }, + handleSelectionChange(val) { + this.mutilSelect = val }, getAuthorizedPerson() { selectUserCondition().then(res => { @@ -362,22 +327,33 @@ }, handleChangeTask(list) { this.mutilSelect = list - } + }, + handleDelete(row) { + this.$confirm("鏄惁鍒犻櫎璇ユ潯鏁版嵁?", "鎻愮ず", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + }) + .then(() => { + delProcessReport({ id: row.id }).then((res) => { + if (res.code == 201) return; + this.$message.success("鍒犻櫎鎴愬姛"); + this.refresh(); + }); + }) + .catch(() => { }); + }, } } </script> <style scoped> -.title { - height: 60px; - line-height: 60px; -} - .search { background-color: #fff; height: 80px; display: flex; align-items: center; + position: relative; } .search_thing { @@ -397,9 +373,7 @@ } .table { - margin-top: 10px; background-color: #fff; - width: calc(100% - 40px); height: calc(100% - 60px - 80px - 10px - 40px); padding: 20px; } @@ -407,7 +381,6 @@ .tables { table-layout: fixed; width: 100%; - margin-top: 10px; } .tables td { @@ -428,4 +401,10 @@ white-space: normal; /* 榛樿鎹㈣ */ } + +.btn { + position: absolute; + top: 16px; + right: 20px; +} </style> diff --git a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management-dia.vue b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management-dia.vue index 14d2b3b..ec6912c 100644 --- a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management-dia.vue +++ b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management-dia.vue @@ -71,6 +71,13 @@ </template> <script> +import { + getForeignRegisterOne, + selectUserCondition, + addForeignRegister, + updateForeignRegister +} from '@/api/cnas/resourceDemand/foreignRegister/foreignRegister' + export default { name: 'Personnel-management-dia', // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� @@ -126,10 +133,11 @@ // 鏌ヨ璇︽儏 searchInfo (row) { this.diaLoading = true - this.$axios(this.$api.foreignRegister.getForeignRegisterOne + '?registerId=' + row.registerId).then(res => { + getForeignRegisterOne({registerId : row.registerId}).then(res =>{ this.diaLoading = false - if (res.code === 201) return - this.form = res.data + if (res.code === 200){ + this.form = res.data + } }).catch(err => { console.log(err) this.diaLoading = false @@ -150,31 +158,24 @@ internalImplementDto.approveName = this.personList[index].label } if (this.operationType === 'add') { - this.$axios.post(this.$api.foreignRegister.addForeignRegister, internalImplementDto, { - headers: { - "Content-Type": "application/json" - }, - noQs: true - }).then(res => { + addForeignRegister(internalImplementDto).then(res => { this.loading = false - if (res.code === 201) return - this.$message.success('鎿嶄綔鎴愬姛') - this.closeThreeWastesDia() + if (res.code === 200){ + this.$message.success('鎿嶄綔鎴愬姛') + this.closeThreeWastesDia() + } }).catch(err => { console.log('err---', err); this.loading = false }) } else if (this.operationType === 'edit') { - this.$axios.post(this.$api.foreignRegister.updateForeignRegister, internalImplementDto, { - headers: { - "Content-Type": "application/json" - }, - noQs: true - }).then(res => { + updateForeignRegister(internalImplementDto).then(res => { this.loading = false - if (res.code === 201) return - this.$message.success('鎿嶄綔鎴愬姛') - this.closeThreeWastesDia() + if (res.code === 200){ + this.$message.success('鎿嶄綔鎴愬姛') + this.closeThreeWastesDia() + } + }).catch(err => { console.log('err---', err); this.loading = false @@ -192,7 +193,7 @@ this.$emit('closeThreeWastesDia') }, getAuthorizedPerson() { - this.$axios.get(this.$api.user.getUserMenu).then(res => { + selectUserCondition().then(res => { let data = [] res.data.forEach(a => { data.push({ diff --git a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue index b15fbc2..3c32a22 100644 --- a/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue +++ b/src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue @@ -1,52 +1,52 @@ <template> - <div> - <div class="search-background"> - <span class="search-group"> - <span style="width: 160px">鏃ユ湡锛�</span> - <el-date-picker v-model="searchForm.registerDate" - clearable - format="yyyy-MM-dd" - placeholder="閫夋嫨鏃ユ湡" - size="small" - style="width: 100%" - type="date" - value-format="yyyy-MM-dd"> + <div class="capacity-scope"> + <div class="search"> + <div> + <el-form :model="searchForm" ref="searchForm" size="small" :inline="true"> + <el-form-item label="鏃ユ湡" prop="registerDate"> + <el-date-picker v-model="searchForm.registerDate" + clearable + format="yyyy-MM-dd" + placeholder="閫夋嫨鏃ユ湡" + size="small" + style="width: 100%" + type="date" + value-format="yyyy-MM-dd"> </el-date-picker> - <el-button size="medium" style="margin-left: 10px" @click="resetSearchForm">閲� 缃�</el-button> - <el-button size="medium" type="primary" @click="searchList">鏌� 璇�</el-button> - </span> - <span class="search-group"> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="searchList">鏌� 璇�</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetSearchForm">閲� 缃�</el-button> + </el-form-item> + </el-form> + </div> + <div> <el-button size="medium" @click="handleDown">瀵� 鍑�</el-button> <el-button size="medium" type="primary" @click="openFormDia('add')">鏂� 澧�</el-button> - </span> + </div> </div> <div class="table"> - <ZTTable - :column="tableColumn" - :height="'calc(100vh - 20em)'" - :table-data="tableData" - :table-loading="tableLoading" - style="padding: 0 10px;margin-bottom: 16px"> - </ZTTable> - <el-pagination :current-page="1" :page-size="page.size" :page-sizes="[10, 20, 30, 50, 100]" - :total="total" layout="->,total, sizes, prev, pager, next, jumper" - @size-change="handleSizeChange" - @current-change="handleCurrentChange"> - </el-pagination> + <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 250px)'" @pagination="pagination" + :page="page" :tableLoading="tableLoading"></lims-table> </div> <personnel-management-dia v-if="threeWastesDia" ref="threeWastesDia" @closeThreeWastesDia="closeThreeWastesDia"></personnel-management-dia> </div> </template> <script> -// import ZTTable from '../../caorui/ZTTable/index.vue'; -// import PersonnelManagementDia from './Personnel-management-dia.vue'; import PersonnelManagementDia from '../component/Personnel-management-dia.vue'; +import limsTable from '@/components/Table/lims-table.vue' + +import { + pageForeignRegister, + delForeignRegister, + exportForeignRegister +} from '@/api/cnas/resourceDemand/foreignRegister/foreignRegister' export default { name: 'Personnel-management', // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� - components: { PersonnelManagementDia}, + components: { limsTable, PersonnelManagementDia}, data() { // 杩欓噷瀛樻斁鏁版嵁 return { @@ -121,8 +121,9 @@ tableData: [], tableLoading: false, page: { - size: 20, - current: 1, + total: 0, + size: 10, + current: 1 }, total: 0, threeWastesDia: false @@ -135,19 +136,17 @@ methods: { // 鏌ヨ鍒楄〃 searchList () { - const entity = this.searchForm - const page = this.page this.tableLoading = true - this.$axios.post(this.$api.foreignRegister.pageForeignRegister, {entity, page}, { - headers: { - "Content-Type": "application/json" - }, - noQs: true + pageForeignRegister({ + ...this.page, + ...this.searchForm }).then(res => { this.tableLoading = false - if (res.code === 201) return - this.tableData = res.data.records - this.total = res.data.total + if (res.code === 200){ + this.tableData = res.data.records + this.page.total = res.data.total + } + }).catch(err => { console.log('err---', err); this.tableLoading = false @@ -161,11 +160,12 @@ type: 'warning' }).then(() => { this.tableLoading = true - this.$axios.get(this.$api.foreignRegister.delForeignRegister + '?registerId=' + row.registerId).then(res => { + delForeignRegister({registerId:row.registerId}).then(res =>{ this.tableLoading = false - if (res.code === 201) return - this.$message.success('鍒犻櫎鎴愬姛') - this.searchList() + if (res.code === 200){ + this.$message.success('鍒犻櫎鎴愬姛') + this.searchList() + } }).catch(err => { this.tableLoading = false console.log('err---', err); @@ -185,42 +185,11 @@ }) }, // 瀵煎嚭 - handleDown (row) { - const entity = this.searchForm - this.$axios.post(this.$api.foreignRegister.exportForeignRegister,{entity},{ - responseType: "blob", - headers: { - "Content-Type": "application/json" - }, - noQs: true}).then(res => { - this.outLoading = false + handleDown () { + exportForeignRegister(this.searchForm).then(res => { const blob = new Blob([res],{ type: 'application/msword' }); - //灏咮lob 瀵硅薄杞崲鎴愬瓧绗︿覆 - let reader = new FileReader(); - reader.readAsText(blob, 'utf-8'); - reader.onload = () => { - try { - let result = JSON.parse(reader.result); - if (result.message) { - this.$message.error(result.message); - } else { - const url = URL.createObjectURL(blob); - const link = document.createElement('a'); - link.href = url; - link.download = '澶栨潵浜哄憳鐧昏' + '.docx'; - link.click(); - this.$message.success('瀵煎嚭鎴愬姛') - } - } catch (err) { - console.log(err); - const url = URL.createObjectURL(blob); - const link = document.createElement('a'); - link.href = url; - link.download = '澶栨潵浜哄憳鐧昏' + '.docx'; - link.click(); - this.$message.success('瀵煎嚭鎴愬姛') - } - } + this.$download.saveAs(blob, '澶栨潵浜哄憳鐧昏.docx') + this.$message.success('瀵煎嚭鎴愬姛') }) }, closeThreeWastesDia () { @@ -232,13 +201,9 @@ this.searchForm.registerDate = ''; this.searchList() }, - // 鍒嗛〉 - handleSizeChange(val) { - this.page.size = val; - this.searchList(); - }, - handleCurrentChange(val) { - this.page.current = val; + // 鍒嗛〉鍒囨崲 + pagination(page) { + this.page.size = page.limit this.searchList(); }, } @@ -246,16 +211,9 @@ </script> <style scoped> -.search-background { - width: 100%; - height: 60px; - line-height: 60px; +.search { + height: 46px; display: flex; justify-content: space-between; -} -.search-group { - display: flex; - align-items: center; - margin: 0 20px; } </style> diff --git a/src/views/CNAS/resourceDemand/facilitiesEnvironment/index.vue b/src/views/CNAS/resourceDemand/facilitiesEnvironment/index.vue index 9705d3d..3c6f34b 100644 --- a/src/views/CNAS/resourceDemand/facilitiesEnvironment/index.vue +++ b/src/views/CNAS/resourceDemand/facilitiesEnvironment/index.vue @@ -18,15 +18,15 @@ <script> import FacilitiesEnvironmentalConditions from "../facilitiesEnvironment/component/facilities-environmental-conditions.vue"; // // 澶栨潵浜哄憳绠$悊 - import ExternalPersonnelManagement from "../facilitiesEnvironment/component/Personnel-management.vue"; +// import ExternalPersonnelManagement from "../facilitiesEnvironment/component/Personnel-management.vue"; import A6ThreeWastesTreatment from '../facilitiesEnvironment/component/three-wastes-treatment.vue'; -// import PersonnelManagement from '../do/a6-facilities-environment/Personnel-management.vue'; + import PersonnelManagement from '../facilitiesEnvironment/component/Personnel-management.vue'; export default { components: { // PersonnelManagement, A6ThreeWastesTreatment, - ExternalPersonnelManagement, + PersonnelManagement, FacilitiesEnvironmentalConditions }, data() { -- Gitblit v1.9.3