diff --git a/WebSite/package-lock.json b/WebSite/package-lock.json index d326e2e5a53e9730aba0d547e2d1d417dde1f64c..4c787e8c2e413043d4e3f97c53cfdf88adc20f8a 100644 --- a/WebSite/package-lock.json +++ b/WebSite/package-lock.json @@ -8450,6 +8450,11 @@ "commander": "*" } }, + "moment": { + "version": "2.29.4", + "resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" + }, "move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", diff --git a/WebSite/package.json b/WebSite/package.json index 1520d692c1f7798e513088ad682ae972363b2f82..04af664f1de67d63a78a73b1a2783aac3ecb398e 100644 --- a/WebSite/package.json +++ b/WebSite/package.json @@ -19,6 +19,7 @@ "driver.js": "0.9.8", "echarts": "5.1.2", "element-plus": "2.2.6", + "moment": "^2.29.4", "normalize.css": "8.0.1", "nprogress": "0.2.0", "qiankun": "^2.5.0", diff --git a/WebSite/src/api/base/base.js b/WebSite/src/api/base/base.js index a4a7f521e8771f91bd6ce0b84ea9f29f7e5da307..5a648281f2362546341eac4fee12416319c529cf 100644 --- a/WebSite/src/api/base/base.js +++ b/WebSite/src/api/base/base.js @@ -10,7 +10,7 @@ class Base { static downloadFile(res) { debugger; if (!res) return; - var blob = new Blob([res], { type: 'application/octet-stream' }); + var blob = new Blob([res.data], { type: res.data.type }); // 閽堝浜嶪E娴忚鍣ㄧ殑澶勭悊, 鍥犻儴鍒咺E娴忚鍣ㄤ笉鏀寔createObjectURL if (window.navigator && window.navigator.msSaveOrOpenBlob) { window.navigator.msSaveOrOpenBlob(blob, res.fileName); diff --git a/WebSite/src/api/projectType.js b/WebSite/src/api/projectType.js index a916de2660556fbc4b2e17d70f9b3665f903e2aa..d43bac5211c5a6e7e81853f6d428451a023bcbd4 100644 --- a/WebSite/src/api/projectType.js +++ b/WebSite/src/api/projectType.js @@ -81,6 +81,10 @@ class ProjectType extends Base { static getProjectAuditOpinionPage(data) { return request.post('/projectAudit/getProjectAuditOpinionPage', data); } + //璐d换澶勫-鏂板缓椤圭洰鍓嶆牎楠� + static addValid() { + return request.post('/projectType/addValid'); + } } export default ProjectType; diff --git a/WebSite/src/api/trust-letter-management-finance.js b/WebSite/src/api/trust-letter-management-finance.js index 6f35e9f35040916ccba1a9a80739d26da8739971..e8d89abcc971afbbef717a2ea099b66a7591b5f5 100644 --- a/WebSite/src/api/trust-letter-management-finance.js +++ b/WebSite/src/api/trust-letter-management-finance.js @@ -7,9 +7,10 @@ */ import request from '@/core/base/request'; +import { Base } from './base/base'; -class trustLetterManagementFinance { - //鍒嗛〉鏌ヨ +class trustLetterManagementFinance extends Base{ + //鍒嗛〉鏌ヨ static getEntrustmentPage(data) { return request.post('/entrustment/getEntrustmentPage', data); } @@ -21,9 +22,35 @@ class trustLetterManagementFinance { static getProjectListByEntrustmentId(data) { return request.post('/entrustment/getProjectListByEntrustmentId', data); } + //涓嬭浇濮旀墭鍑絧df + static downloadEntrustmentPdf(c) { + return request({ + url: `/entrustment/downloadEntrustmentPdf?id=${c}`, + responseType: 'blob', + method: 'get' + }) + .then(res => super.downloadFile(res)); + } //涓嬭浇椤圭洰鐢虫姤pdf - static downloadProjectPdf(data) { - return request.get(`/projectType/downloadProjectPdf?id=${data}`); + static downloadProjectPdf(c) { + return request({ + url: `/projectType/downloadProjectPdf?id=${c}`, + responseType: 'blob', + method: 'get' + }) + .then(res => super.downloadFile(res)); + } + //閫氱敤-椤圭洰-鏌ョ湅瀹℃牳鎰忚 + static getProjectAuditOpinionPage(data) { + return request.post('/projectAudit/getProjectAuditOpinionPage', data); + } + //璐㈠姟澶勬壒閲忓鏍稿鎵樺嚱鍐呴」鐩€氳繃 + static batchAuditPass(data) { + return request.post('/entrustment/batchAuditPass', data); + } + //璐㈠姟澶勬壒閲忓鏍稿鎵樺嚱鍐呴」鐩€€鍥� + static batchAuditBack(data) { + return request.post('/entrustment/batchAuditBack', data); } } diff --git a/WebSite/src/components/UploadFile/index.vue b/WebSite/src/components/UploadFile/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..d9d845fa4f7ab432afed00a627e8ecef4ea64f3f --- /dev/null +++ b/WebSite/src/components/UploadFile/index.vue @@ -0,0 +1,166 @@ +<template> + <div> + <el-dialog + :title="'闄勪欢' + title" + v-model="uploadFileDialog" + width="60%" + @close="closeHandler" + destroy-on-close + > + <div class="loading-sign" v-if="uploadFileDialog"></div> + <div class="upload"> + <el-upload + action="#" + multiple + :on-change="fileChange" + :on-remove="removeFile" + :http-request="uploadFile" + accept=" + .zip ,.jpg ,.png ,.jpeg, + .xls,.XLS, + .xlsx,.XLSX, + .bmp,.gif,.txt,.doc,.pdf,.pptx,.docx + " + > + <el-button size="small" type="primary">閫夋嫨鏂囦欢</el-button> + <template #tip> + <div class="el-upload__tip"> + <slot name="uploadTip" /> + </div> + </template> + </el-upload> + <div class="upload-slot"> + <slot /> + </div> + </div> + <template #footer> + <span class="dialog-footer"> + <el-button @click="uploadFileDialog = false">鍙� 娑�</el-button> + <el-button type="primary" @click="uploadClick" :loading="loading" + >涓� 浼�</el-button + > + </span> + </template> + </el-dialog> + </div> +</template> + +<script> +import { computed, ref } from 'vue'; +import { ElMessage } from 'element-plus'; +export default { + name: 'UploadFile', + props: { + modelValue: { + required: true, + type: Boolean, + }, + sigleFile: { + type: Boolean, + default: false, + }, + title: { + type: String, + default: '涓婁紶', + }, + }, + emits: ['update:modelValue', 'upload-handler'], + setup(props, context) { + const loading = ref(false); + const acceptType = [ + 'zip','ZIP', + 'jpg','JPG', + 'png','PNG', + 'jpeg','JPEG', + 'xls','XLS', + 'xlsx','XLSX', + 'bmp','BMP', + 'gif','GIF', + 'txt','TXT', + 'doc','DOC', + 'pdf','PDF', + 'pptx','PPTX', + 'docx','DOCX', + ]; + const uploadFileDialog = computed({ + get() { + return props.modelValue; + }, + set(val) { + context.emit('update:modelValue', val); + }, + }); + let list = ref([]); + const fileChange = (file, fileList) => { + const startIndex = file.name.lastIndexOf('.'); + const surfixName = file.name.substring(startIndex + 1); + if (!acceptType.includes(surfixName)) { + const index = fileList.findIndex((item) => file.uid == item.uid); + fileList.splice(index, 1); + return ElMessage.warning('璇蜂笂浼犳纭牸寮忕殑鏂囦欢'); + } + if (file.size > 104857600) { + const index = fileList.findIndex((item) => file.uid === item.uid); + fileList.splice(index, 1); + return ElMessage.warning('涓婁紶鐨勬枃浠朵笉鑳借秴杩�100M'); + } + list.value = fileList; + }; + const removeFile = (file, fileList) => { + list.value = fileList; + }; + const uploadFile = () => { + //瑕嗙洊el-upload鐨勪笂浼� + }; + const closeHandler = () => { + list.value = []; + }; + const uploadClick = () => { + // loading.value = true; + let arr = []; + list.value.forEach((file) => { + const existIndex = arr.findIndex( + (item) => + item.name == file.name && + item.raw.lastModified == file.raw.lastModified + ); + if (existIndex == -1) { + arr.push(file); + } + }); + if (arr.length <= 0) { + loading.value = false; + return ElMessage.warning('璇烽€夋嫨闇€瑕佷笂浼犵殑鏂囦欢'); + } + if (props.sigleFile && arr.length > 1) { + loading.value = false; + return ElMessage.warning('鏈€澶氫笂浼犱竴涓枃浠�'); + } + context.emit('upload-handler', arr, () => { + loading.value = false; + }); + }; + return { + loading, + uploadFileDialog, + list, + fileChange, + removeFile, + uploadFile, + uploadClick, + closeHandler, + }; + }, +}; +</script> + +<style scoped> +.upload { + position: relative; +} +.upload-slot { + position: absolute; + top: 0; + left: 100px; +} +</style> diff --git a/WebSite/src/store/modules/subject.js b/WebSite/src/store/modules/subject.js index a1d9f4fdc5a542e9f3a2880a26ba9b953b74a2b9..80d3c3977374bc82a86efeb062714e00117d0987 100644 --- a/WebSite/src/store/modules/subject.js +++ b/WebSite/src/store/modules/subject.js @@ -272,6 +272,19 @@ const actions = { const redirect = state.loginType === 'sso' && state.ssoAddress ? { +<<<<<<< HEAD + path: '/auth-redirect', + query: { ssoAddress: state.ssoAddress, ssoLogout } + } + : { path: '/login', query }; + + if (doRouterPush) { + window.location.href = 'http://192.168.1.77:8082/Menu/Supervision' + // router.push(redirect); + } else { + return redirect; + } +======= path: '/auth-redirect', query: { ssoAddress: state.ssoAddress, ssoLogout } } @@ -283,6 +296,7 @@ const actions = { // return redirect; // } window.location.href = 'http://192.168.1.77:8082/Menu/Supervision'; +>>>>>>> develop } }; diff --git a/WebSite/src/views/item-entry/exante-performance-evaluation-function-edit/index.vue b/WebSite/src/views/item-entry/exante-performance-evaluation-function-edit/index.vue index 75618b9a8e59a1bd92d229fa367148268ca7c69b..abdc916d476cef23c281b117b9ed686bdc29f289 100644 --- a/WebSite/src/views/item-entry/exante-performance-evaluation-function-edit/index.vue +++ b/WebSite/src/views/item-entry/exante-performance-evaluation-function-edit/index.vue @@ -53,7 +53,7 @@ </el-form-item> </el-form> </el-card> - <el-card class="box-card" style="margin-top:20px;"> + <el-card class="box-card" style="margin-top: 20px"> <el-form ref="formRef" :model="form" label-width="120px"> <el-form-item label="椤圭洰鍚嶇О"> <el-input @@ -64,7 +64,7 @@ <el-form-item label="鐢虫姤骞翠唤"> <el-date-picker :disabled="judgeDisabled == 'true'" - style="width: 100%;" + style="width: 100%" v-model="form.budYear" type="year" value-format="YYYY" @@ -76,7 +76,7 @@ :disabled="judgeDisabled == 'true'" v-model="form.projectStartDate" type="date" - placeholder="Pick a day" + placeholder="璇烽€夋嫨鏃ユ湡" value-format="YYYY-MM-DD" :size="size" /> @@ -102,7 +102,7 @@ v-model="form.projectBackground" name="" id="" - style="width: 100%;" + style="width: 100%" rows="5" ></textarea> </el-form-item> @@ -112,7 +112,7 @@ v-model="form.projectImplementation" name="" id="" - style="width: 100%;" + style="width: 100%" rows="5" ></textarea> </el-form-item> @@ -122,7 +122,7 @@ v-model="form.projectExpenditure" name="" id="" - style="width: 100%;" + style="width: 100%" rows="5" ></textarea> </el-form-item> @@ -132,7 +132,7 @@ v-model="form.projectManagement" name="" id="" - style="width: 100%;" + style="width: 100%" rows="5" ></textarea> </el-form-item> @@ -142,51 +142,86 @@ v-model="form.projectPerformance" name="" id="" - style="width: 100%;" + style="width: 100%" rows="5" ></textarea> </el-form-item> <el-form-item label="鍏€侀檮浠讹細"> - <el-upload + <el-button :disabled="judgeDisabled == 'true'" - action="#" - :file-list="fileOuts" - :multiple="false" - :on-remove="handleRemove" - :before-upload="beforeUpload" - :http-request="handleRequest" - :show-file-list="true" + plain + type="primary" + icon="plus" + size="small" + @click="uploadDialog1 = true" + >鏂板</el-button + ><span + >鍏佽鏂囦欢鐨勭被鍨�:(.zip ,.jpg ,.png ,.jpeg, .xls,.XLS, .xlsx,.XLSX, + .bmp,.gif,.txt,.doc,.pdf,.pptx,.docx)</span > - <el-button - :disabled="judgeDisabled == 'true'" - plain - type="primary" - icon="plus" - size="small" - >鏂板</el-button - > - </el-upload> + <UploadFile + v-model:modelValue="uploadDialog1" + @upload-handler="uploadHandler1" + > + </UploadFile> + <el-table + :show-header="false" + :data="fileIdsNameList" + :empty-text="鏆傛棤闄勪欢" + > + <el-table-column prop="fileName"> + <template #default="scope"> + {{ scope.row.fileName }} + </template> + </el-table-column> + <el-table-column align="right" width="190"> + <template #default="scope"> + <el-button + type="danger" + :disabled="disabledPreview" + @click="deleteFileId(scope.row, scope.$index)" + >鍒犻櫎</el-button + > + </template> + </el-table-column> + </el-table> </el-form-item> <el-form-item label="涓冦€佹壙璇哄強瀹℃牳淇℃伅锛�"> - <el-upload + <el-button :disabled="judgeDisabled == true" - action="#" - :file-list="fileExamineOuts" - :multiple="false" - :on-remove="handleRemove" - :before-upload="beforeExamineUpload" - :http-request="handleExamineRequest" - :show-file-list="true" + plain + type="primary" + icon="plus" + size="small" + @click="uploadDialog2 = true" + >鏂板闄勪欢</el-button + ><span>鍏佽鏂囦欢鐨勭被鍨�:(.jpg ,.png ,.jpeg, .pdf)</span> + <UploadFile + v-model:modelValue="uploadDialog2" + @upload-handler="uploadHandler2" > - <el-button - :disabled="judgeDisabled == true" - plain - type="primary" - icon="plus" - size="small" - >鏂板闄勪欢</el-button - > - </el-upload> + </UploadFile> + <el-table + :show-header="false" + :data="fileIdsNameList2" + :empty-text="鏆傛棤闄勪欢" + > + <el-table-column prop="fileName"> + <template #default="scope"> + {{ scope.row.fileName }} + </template> + </el-table-column> + <el-table-column align="right" width="190"> + <template #default="scope"> + <el-button + type="danger" + :disabled="disabledPreview" + @click="deleteFileId2(scope.row, scope.$index)" + >鍒犻櫎</el-button + > + </template> + </el-table-column> + </el-table> <!-- <el-button plain style="padding-top: 0px;" @@ -199,7 +234,7 @@ <el-form-item> <el-button plain - style="padding-top: 0px;" + style="padding-top: 0px" type="primary" icon="view" size="small" @@ -217,15 +252,21 @@ import { use } from 'echarts/core'; import { ElNotification } from 'element-plus'; import ProjectType from '@/api/projectType'; import { useRoute, useRouter } from 'vue-router'; +import { ElMessage } from 'element-plus'; +import UploadFile from '@/components/UploadFile'; + use([]); ``; export default { name: 'ExantePerformanceEvaluationFunctionEdit', - components: {}, + components: { + UploadFile, + }, setup() { const route = useRoute(); const router = useRouter(); const data = reactive({ + disabledPreview:false, id: '', // judgepreview: false, judgeRoute: '', @@ -239,14 +280,22 @@ export default { auditDataCount: 0, budYear: '', form: { - fileIds: [] + fileIds: [], + promiseFileIds: [], }, + fileIdsNameList: [], + fileIdsNameList2: [], formData: new FormData(), - examineFormData: new FormData() + examineFormData: new FormData(), + uploadDialog1: false, + fileName1: '', + uploadDialog2: false, + fileName2: '', }); onMounted(() => { data.id = route.query.id; data.judgeDisabled = route.query.judgepreview; + data.disabledPreview = route.query.preview && route.query.preview == 1 ? true : false claim(); }); onActivated(() => { @@ -262,17 +311,24 @@ export default { const claim = async () => { data.form = {}; - data.form.deptName = '鍩圭澶�'; + //data.form.deptName = '鍩圭澶�'; if (data.id) { const a = {}; a.id = data.id; const res = await ProjectType.getProjectInfo(a); - res.data[0].fileOuts.forEach(x => { + res.data[0].fileOuts.forEach((x) => { x.name = x.fileName; }); - data.fileOuts = res.data[0].fileOuts.filter(x => x.type == 1); - data.fileExamineOuts = res.data[0].fileOuts.filter(x => x.type == 2); data.form = res.data[0]; + data.fileIdsNameList = res.data[0].fileOuts.filter((x) => x.type == 1); + data.fileIdsNameList2 = res.data[0].fileOuts.filter((x) => x.type == 2); + data.form.fileIds = data.form.fileOuts + .filter((x) => x.type == 1) + .map((item) => item.id); + data.form.promiseFileIds = data.form.fileOuts + .filter((x) => x.type == 2) + .map((item) => item.id); + data.fileExamineOuts = res.data[0].fileOuts.filter((x) => x.type == 2); if (data.form.budYear) { data.form.budYear = data.form.budYear.toString(); } @@ -380,25 +436,39 @@ export default { const res = await ProjectType.temporarySave(data.form); if (res.description == '鎴愬姛') { ElNotification.success('淇濆瓨鎴愬姛!'); + router.push({ + path: `/i/item-entry/exante-performance-evaluation-function-edit`, + query: { + id: res.data[0], + judgepreview: false, + }, + }); } else { ElNotification.error(res.description); } }; const onSubmit = async () => { judgeFile(); + await onSave(); const res = await ProjectType.submit(data.form); if (res.description == '鎴愬姛') { ElNotification.success('鎴愬姛鎻愪氦'); + router.push('/i/item-entry/exante-performance-evaluation-function'); } else { ElNotification.error(res.description); } }; const onBack = () => { - router.go(-1); + //router.push('/i/item-entry/exante-performance-evaluation-function'); + router.go(-1) + closeFilelist(); }; - - const beforeUpload = file => { + const closeFilelist = () => { + data.fileIdsNameList = []; + data.fileIdsNameList2 = []; + }; + const beforeUpload = (file) => { let extName = file.name .substring(file.name.lastIndexOf('.')) .toLowerCase(); @@ -408,11 +478,11 @@ export default { return false; } }; - const handleRequest = async upData => { + const handleRequest = async (upData) => { data.formData = new FormData(); data.formData.append('file', upData.file); }; - const beforeExamineUpload = file => { + const beforeExamineUpload = (file) => { let extName = file.name .substring(file.name.lastIndexOf('.')) .toLowerCase(); @@ -427,18 +497,86 @@ export default { // return fileSize; // } }; - const handleExamineRequest = async upData => { + const handleExamineRequest = async (upData) => { data.examineFormData = new FormData(); data.examineFormData.append('file', upData.file); }; - const handleRemove = async upData => { - let a = {}; - a.id = upData.id; - const res = await ProjectType.removeFile(a); - if (res.description == '鎴愬姛') { - ElNotification.success('闄勪欢鍒犻櫎鎴愬姛!'); + // const uploadAttachFile = async (upData) => { + // let a = {}; + // a.id = upData.id; + // const res = await ProjectType.uploadAttachFile(a); + // if (res.description == '鎴愬姛') { + // ElNotification.success('闄勪欢涓婁紶鎴愬姛!'); + // } + // }; + //涓婁紶闄勪欢 + const uploadHandler1 = async (fileList) => { + const formData = new FormData(); + fileList.forEach((file) => { + formData.append('file', file.raw); + }); + data.fileName1 = fileList[0].name; + const res = await ProjectType.uploadAttachFile(formData); + if (res.code == '00000') { + if (data.form.fileIds == undefined) { + data.form.fileIds = []; + } + data.form.fileIds = data.form.fileIds.concat( + res.data.map((item) => item.id) + ); + data.fileIdsNameList = [...data.fileIdsNameList, ...res.data]; + ElMessage.success('涓婁紶鎴愬姛'); + data.uploadDialog1 = false; + } else { + ElMessage.error('涓婁紶澶辫触'); + data.uploadDialog1 = false; + } + }; + //鍒犻櫎闄勪欢 + const deleteFileId = (row, index) => { + ProjectType.removeFile({ id: row.id }).then(() => { + data.fileIdsNameList.splice(index, 1); + ElMessage.success('鍒犻櫎鎴愬姛'); + }); + }; + //涓婁紶鎵胯 + const uploadHandler2 = async (fileList) => { + const formData = new FormData(); + fileList.forEach((file) => { + formData.append('file', file.raw); + }); + data.fileName2 = fileList[0].name; + const res = await ProjectType.uploadPromiseAttachFile(formData); + if (res.code == '00000') { + if (data.form.promiseFileIds == undefined) { + data.form.promiseFileIds = []; + } + data.form.promiseFileIds = data.form.promiseFileIds.concat( + res.data.map((item) => item.id) + ); + data.fileIdsNameList2 = [...data.fileIdsNameList2, ...res.data]; + ElMessage.success('涓婁紶鎴愬姛'); + data.uploadDialog2 = false; + } else { + ElMessage.error('涓婁紶澶辫触'); + data.uploadDialog2 = false; } }; + //鍒犻櫎鎵胯闄勪欢 + const deleteFileId2 = (row, index) => { + ProjectType.removeFile({ id: row.id }).then(() => { + data.fileIdsNameList2.splice(index, 1); + ElMessage.success('鍒犻櫎鎴愬姛'); + }); + }; + // const uploadPromiseAttachFile = async (upData) => { + // let a = {}; + // a.id = upData.id; + // const res = await ProjectType.uploadPromiseAttachFile(a); + // if (res.description == '鎴愬姛') { + // ElNotification.success('闄勪欢涓婁紶鎴愬姛!'); + // } + // }; const onDownload = async () => { const res = await ProjectType.downloadProjectPdf(data.id); console.log(res); @@ -446,7 +584,7 @@ export default { watch( () => router.currentRoute.value, - newValue => { + (newValue) => { const judgeRoute = newValue.query.judgepreview + '_' + newValue.query.id; if (data.judgeRoute != judgeRoute && newValue.query.judgepreview) { @@ -465,16 +603,22 @@ export default { beforeExamineUpload, onSelectIndexLibrary, onBack, + closeFilelist, onSubmit, beforeUpload, - handleRemove, + //uploadAttachFile, + uploadHandler1, + deleteFileId, + deleteFileId2, + uploadHandler2, + //uploadPromiseAttachFile, handleRequest, onPreview, onSave, claim, - ...toRefs(data) + ...toRefs(data), }; - } + }, }; </script> diff --git a/WebSite/src/views/item-entry/exante-performance-evaluation-function/index.vue b/WebSite/src/views/item-entry/exante-performance-evaluation-function/index.vue index 6df59e666ece011aaa91bdcb36e3567d94601bef..10f5bc88f1dc17f21362dff86c6082e860e4a9c0 100644 --- a/WebSite/src/views/item-entry/exante-performance-evaluation-function/index.vue +++ b/WebSite/src/views/item-entry/exante-performance-evaluation-function/index.vue @@ -35,7 +35,7 @@ </el-form-item> </el-form> </el-card> - <el-card class="box-card" style="margin-top:20px;"> + <el-card class="box-card" style="margin-top: 20px"> <div class="filter-container"> <el-table :data="exantePerformanceTableInfo.data" @@ -126,7 +126,7 @@ </el-table-column> </el-table> <Pagination - style="padding-bottom:10px" + style="padding-bottom: 10px" :page="exantePerformanceTableInfo.pageIndex" :limit="exantePerformanceTableInfo.pageSize" :total="dataCount" @@ -345,7 +345,7 @@ ></el-table-column> </el-table> <Pagination - style="padding-bottom:10px" + style="padding-bottom: 10px" :page="auditOpinionTableInfo.pageIndex" :limit="auditOpinionTableInfo.pageSize" :total="auditDataCount" @@ -365,7 +365,7 @@ <script> import { reactive, toRefs, onActivated } from 'vue'; import { use } from 'echarts/core'; -import { ElNotification } from 'element-plus'; +import { ElNotification, } from 'element-plus'; import ProjectType from '@/api/projectType'; import { useRouter } from 'vue-router'; use([]); @@ -397,43 +397,43 @@ export default { projectCode: '2023001', year: '2023', projectName: '2023骞撮珮鏍″疄楠屽鏉′欢淇濋殰涓庡姛鑳芥彁鍗囦笓椤�', - projectState: '寰呮彁浜�' - } + projectState: '寰呮彁浜�', + }, ], pageIndex: 1, - pageSize: 10 + pageSize: 10, }, auditOpinionTableInfo: { tableInfo: [ { audit: '寮犺暰', auditDate: '2023-02-03 15:30:05', - auditOpinion: '闇€琛ュ厖涓婁紶' - } + auditOpinion: '闇€琛ュ厖涓婁紶', + }, ], pageIndex: 1, - pageSize: 10 + pageSize: 10, }, exantePerformanceSelects: [], form: { - fileIds: [] + fileIds: [], }, queryProjectInfo: { pageIndex: 1, pageSize: 10, - budYear: '' + budYear: '', }, formData: new FormData(), - examineFormData: new FormData() + examineFormData: new FormData(), }); onActivated(() => { getProjectInfoPage(data.queryProjectInfo); }); - const getProjectInfoPage = async queryProjectInfo => { + const getProjectInfoPage = async (queryProjectInfo) => { const res = await ProjectType.getDeptProjectInfoPage(queryProjectInfo); data.exantePerformanceTableInfo = res; - data.exantePerformanceTableInfo.data.forEach(x => { + data.exantePerformanceTableInfo.data.forEach((x) => { if (x.stateCode == 1) { x.judgeState = 1; } else if ( @@ -449,7 +449,7 @@ export default { }); data.dataCount = res.total; }; - const handlechangePage = async val => { + const handlechangePage = async (val) => { data.queryProjectInfo.pageIndex = val.page; getProjectInfoPage(data.queryProjectInfo); }; @@ -458,24 +458,34 @@ export default { data.onSelectIndexLibraryDialog = true; }; const onAddIndexLibrary = async () => { - // data.form = {}; - // data.form.deptName = '鍩圭澶�'; - // data.isEdit = false; - // data.onNewIndexDialog = true; - router.push({ - path: `/i/item-entry/exante-performance-evaluation-function-edit`, - query: { - id: '', - judgepreview: false - } - }); + // ProjectType.addValid().then((res) => { + // if (res.data && res.data.length > 0) { + // ElMessage.warning('褰撳墠宸叉棤鐢虫姤鏉冮檺,濡傞渶鐢虫姤璇疯仈绯昏储鍔″寮€閫氭潈闄�'); + // return; + // } else { + // router.push({ + // path: `/i/item-entry/exante-performance-evaluation-function-edit`, + // query: { + // id: '', + // judgepreview: false, + // }, + // }); + // } + // }); + router.push({ + path: `/i/item-entry/exante-performance-evaluation-function-edit`, + query: { + id: '', + judgepreview: false, + }, + }); }; - const watchDetail = async row => { + const watchDetail = async (row) => { const a = { pageIndex: 1, pageSize: 10, parentId: row.id, - type: 1 + type: 1, }; data.onwatchDetailDialog = true; const res = await ProjectType.getProjectAuditOpinionPage(a); @@ -484,7 +494,7 @@ export default { console.log(res); }; - const claim = async row => { + const claim = async (row) => { // data.isEdit = true; // data.form = {}; // data.onNewIndexDialog = true; @@ -496,8 +506,8 @@ export default { path: `/i/item-entry/exante-performance-evaluation-function-edit`, query: { id: row.id, - judgepreview: false - } + judgepreview: false, + }, }); // const res = await ProjectType.getProjectInfo(a); // res.data[0].fileOuts.forEach(x => { @@ -532,13 +542,14 @@ export default { // // data.form.budYear = data.form.budYear.toString(); // // } // }; - const onTablePreview = async row => { + const onTablePreview = async (row) => { router.push({ path: `/i/item-entry/exante-performance-evaluation-function-edit`, query: { id: row.id, - judgepreview: true - } + judgepreview: true, + preview:1 + }, }); // data.isEdit = false; // data.judgeDisabled = true; @@ -597,11 +608,11 @@ export default { a.id = res.data[0]; data.id = res.data[0]; const resx = await ProjectType.getProjectInfo(a); - resx.data[0].fileOuts.forEach(x => { + resx.data[0].fileOuts.forEach((x) => { x.name = x.fileName; }); - data.fileOuts = resx.data[0].fileOuts.filter(x => x.type == 1); - data.fileExamineOuts = resx.data[0].fileOuts.filter(x => x.type == 2); + data.fileOuts = resx.data[0].fileOuts.filter((x) => x.type == 1); + data.fileExamineOuts = resx.data[0].fileOuts.filter((x) => x.type == 2); data.form = resx.data[0]; if (data.form.budYear) { data.form.budYear = data.form.budYear.toString(); @@ -649,11 +660,11 @@ export default { a.id = res.data[0]; data.id = res.data[0]; const resx = await ProjectType.getProjectInfo(a); - resx.data[0].fileOuts.forEach(x => { + resx.data[0].fileOuts.forEach((x) => { x.name = x.fileName; }); - data.fileOuts = resx.data[0].fileOuts.filter(x => x.type == 1); - data.fileExamineOuts = resx.data[0].fileOuts.filter(x => x.type == 2); + data.fileOuts = resx.data[0].fileOuts.filter((x) => x.type == 1); + data.fileExamineOuts = resx.data[0].fileOuts.filter((x) => x.type == 2); data.form = resx.data[0]; if (data.form.budYear) { data.form.budYear = data.form.budYear.toString(); @@ -676,7 +687,7 @@ export default { getProjectInfoPage(data.queryProjectInfo); }; - const onBack = row => { + const onBack = (row) => { const index = data.exantePerformanceTableInfo.tableInfo.indexOf(row.id); data.exantePerformanceTableInfo.tableInfo.splice(index, 1); }; @@ -684,7 +695,7 @@ export default { const onSure = () => { data.onwatchDetailDialog = false; }; - const beforeUpload = file => { + const beforeUpload = (file) => { let extName = file.name .substring(file.name.lastIndexOf('.')) .toLowerCase(); @@ -694,11 +705,11 @@ export default { return false; } }; - const handleRequest = async upData => { + const handleRequest = async (upData) => { data.formData = new FormData(); data.formData.append('file', upData.file); }; - const beforeExamineUpload = file => { + const beforeExamineUpload = (file) => { let extName = file.name .substring(file.name.lastIndexOf('.')) .toLowerCase(); @@ -713,11 +724,11 @@ export default { // return fileSize; // } }; - const handleExamineRequest = async upData => { + const handleExamineRequest = async (upData) => { data.examineFormData = new FormData(); data.examineFormData.append('file', upData.file); }; - const handleRemove = async upData => { + const handleRemove = async (upData) => { let a = {}; a.id = upData.id; const res = await ProjectType.removeFile(a); @@ -729,11 +740,11 @@ export default { const res = await ProjectType.downloadProjectPdf(data.id); console.log(res); }; - const onTableDownload = async row => { + const onTableDownload = async (row) => { const res = await ProjectType.downloadProjectPdf(row.id); console.log(res); }; - const onDelete = async row => { + const onDelete = async (row) => { let a = {}; a.id = row.id; const res = await ProjectType.remove(a); @@ -766,9 +777,9 @@ export default { onSave, claim, handlechangePage, - ...toRefs(data) + ...toRefs(data), }; - } + }, }; </script> diff --git a/WebSite/src/views/item-entry/exante-performance-inquiry/index.vue b/WebSite/src/views/item-entry/exante-performance-inquiry/index.vue index bf39a326a1c76e06e84a43c80fc112728aad2023..09a382c18d17d02081ae2ffdb156ffd534fa533a 100644 --- a/WebSite/src/views/item-entry/exante-performance-inquiry/index.vue +++ b/WebSite/src/views/item-entry/exante-performance-inquiry/index.vue @@ -258,7 +258,7 @@ <el-form :model="formDataWrite" ref="formRef"> <el-form-item label="涓€绾ч」鐩悕绉帮細"> <el-input - v-model="formDataWrite.name" + v-model="formDataWrite.projectTypeName" :disabled="formDataWrite.disabled" /> </el-form-item> @@ -299,7 +299,7 @@ export default { onWriteDialog: false, formDataWrite: { id: '', - name: '', + projectTypeName: '', disabled: false, }, formDataBack: { @@ -344,9 +344,9 @@ export default { }); }; const changePage = (val) => { - data.queryInfo.pageIndex = val.page - data.queryInfo.pageSize = val.limit - getFinanceProjectInfoPage(); + data.queryInfo.pageIndex = val.page; + data.queryInfo.pageSize = val.limit; + getFinanceProjectInfoPage(); }; const onEditeSure = () => { data.exantePerformanceTableInfo.tableInfo.forEach((res) => { @@ -358,13 +358,15 @@ export default { }; const onBackSure = () => { exantePerformanceInquiry - .financeAudit({ auditType: 2, parentId: data.formDataBack.id ,remark: data.formDataBack.remark }) - .then((res) => { - if (res.code == '00000') { - ElMessage.success('閫€鍥炴垚鍔�'); - getFinanceProjectInfoPage(); - data.onBackDialog = false; - } + .financeAudit({ + auditType: 2, + parentId: data.formDataBack.id, + remark: data.formDataBack.remark, + }) + .then(() => { + ElMessage.success('閫€鍥炴垚鍔�'); + closeBack(); + getFinanceProjectInfoPage(); }); }; const onViewSure = () => {}; @@ -435,6 +437,7 @@ export default { }; const onWrite = (row) => { data.formDataWrite.id = row.id; + data.formDataWrite.projectTypeName = row.projectTypeName; data.formDataWrite.disabled = false; data.onWriteDialog = true; }; @@ -447,11 +450,11 @@ export default { id: '', remark: '', }; - data.onBackDialog = true; - } + data.onBackDialog = false; + }; const closeWrite = () => { data.formDataWrite = { - name: '', + projectTypeName: '', disabled: false, }; data.onWriteDialog = false; @@ -460,7 +463,7 @@ export default { exantePerformanceInquiry .saveProjectTypeName({ id: data.formDataWrite.id, - projectName: data.formDataWrite.name, + projectTypeName: data.formDataWrite.projectTypeName, }) .then((res) => { if (res.code == '00000') { diff --git a/WebSite/src/views/item-entry/trust-letter-management-finance/index.vue b/WebSite/src/views/item-entry/trust-letter-management-finance/index.vue index d14df952316ec740f51deccf7691223164d1ec1e..c96a4de4187452225cba78bd7ddfb3c7ef8139f2 100644 --- a/WebSite/src/views/item-entry/trust-letter-management-finance/index.vue +++ b/WebSite/src/views/item-entry/trust-letter-management-finance/index.vue @@ -123,7 +123,7 @@ scope.row.entrustmentState == 6 || scope.row.entrustmentState == 9 " - @click="onDownLoad(scope.row)" + @click="onDownLoadEntrustmentPdf(scope.row)" >涓嬭浇</el-button > <el-button @@ -188,9 +188,15 @@ width="45%" destroy-on-close > - <el-form ref="formRef" label-width="80px"> - <span>閫€鍥炴剰瑙侊細 </span> - <textarea name="" id="" style="width: 100%" rows="4"></textarea> + <el-form ref="formRef" label-width="80px" :model="formBack"> + <el-form-item label="閫€鍥炴剰瑙侊細"> + <el-input + v-model="formBack.remark" + :autosize="{ minRows: 2, maxRows: 4 }" + type="textarea" + placeholder="" + /> + </el-form-item> </el-form> <template #footer> <span class="dialog-footer"> @@ -207,7 +213,7 @@ width="45%" destroy-on-close > - <el-form ref="formRef" label-width="80px"> + <el-card> <el-table :data="onViewTableInfo" highlight-current-row @@ -218,28 +224,36 @@ > <el-table-column class="positionStyle" - prop="auditor" - label="瀹℃牳浜�" - align="center" - ></el-table-column> - <el-table-column - class="positionStyle" - prop="auditTime" + prop="createDate" label="瀹℃牳鏃堕棿" align="center" - ></el-table-column> + > + <template #default="scope"> + {{ + scope.row.createDate + ? Moment(scope.row.createDate).format('YYYY-MM-DD HH:mm:ss') + : '' + }} + </template> + </el-table-column> <el-table-column class="positionStyle" - prop="auditopinion" + prop="remark" label="瀹℃牳鎰忚" align="center" ></el-table-column> </el-table> - </el-form> + <Pagination + style="padding-bottom: 10px" + :page="LookInfo.pageIndex" + :limit="LookInfo.pageSize" + :total="total" + @pagination="changePageLook" + /> + </el-card> <template #footer> <span class="dialog-footer"> - <el-button @click="onViewDialog = false">鍙� 娑�</el-button> - <el-button type="primary" @click="onViewSure">纭� 瀹�</el-button> + <el-button type="primary" @click="onViewSure">淇濆瓨</el-button> </span> </template> </el-dialog> @@ -261,7 +275,7 @@ type="primary" icon="Search" size="small" - @click="onQuery" + @click="batchAuditPass" v-if="flag == 1" >鎵归噺閫氳繃</el-button > @@ -272,7 +286,7 @@ type="primary" icon="Search" size="small" - @click="onQuery" + @click="batchAuditBack" v-if="flag == 1" >鎵归噺閫€鍥�</el-button > @@ -285,7 +299,9 @@ border stripe header-cell-class-name="headStyle" + @selection-change="handleSelectionChangeLook" > + <el-table-column type="selection" v-if="flag == 1" width="40" /> <el-table-column class="positionStyle" prop="projectNumber" @@ -318,10 +334,39 @@ ></el-table-column> <el-table-column label="鎿嶄綔" align="center " width="450px"> <template #default="scope"> - <!-- <el-button v-if="scope.row.judgePass" plain type="success" icon="check" size="small" - @click="onPass(scope.row)">閫氳繃</el-button> - <el-button plain type="danger" icon="close" size="small" v-if="scope.row.judgeBack" - @click="onBack(scope.row)">閫€鍥�</el-button> --> + <el-button + v-if=" + flag == 1 && + (scope.row.stateCode == 2 || + scope.row.stateCode == 6 || + scope.row.stateCode == 10 || + scope.row.stateCode == 15) + " + plain + type="success" + icon="check" + size="small" + @click="onPass(scope.row)" + >閫氳繃</el-button + > + <el-button + plain + type="danger" + icon="close" + size="small" + v-if=" + flag == 1 && + (scope.row.stateCode == 2 || + scope.row.stateCode == 4 || + scope.row.stateCode == 6 || + scope.row.stateCode == 7 || + scope.row.stateCode == 10 || + scope.row.stateCode == 11 || + scope.row.stateCode == 15) + " + @click="onBack(scope.row)" + >閫€鍥�</el-button + > <el-button plain type="primary" @@ -523,6 +568,8 @@ import { onMounted, reactive, toRefs } from 'vue'; import { use } from 'echarts/core'; import { useRouter } from 'vue-router'; import trustLetterManagementFinance from '@/api/trust-letter-management-finance'; +import Moment from 'moment'; +import { ElMessage, ElMessageBox } from 'element-plus'; use([]); export default { @@ -539,6 +586,12 @@ export default { pageIndex: 1, pageSize: 10 }, + LookInfo: { + pageIndex: 1, + pageSize: 10, + parentId: '', + }, + total: 6, queryGenerateDelegateInfo: {}, projectStates: [], // onEntrustingLetterTableInfo: [ @@ -563,9 +616,9 @@ export default { onViewTableInfo: [ { auditor: '寮犺暰', - auditTime: '2023-08-19', - auditopinion: '闇€琛ュ厖涓婁紶椤圭洰闄勪欢鏉愭枡' - } + createDate: '2023-08-19', + remark: '闇€琛ュ厖涓婁紶椤圭洰闄勪欢鏉愭枡', + }, ], onViewAppraisalResultTableInfo: [], exantePerformanceTableInfo: { @@ -573,12 +626,19 @@ export default { pageIndex: 1, pageSize: 10 }, - exantePerformanceSelects: [] - }); - onMounted(() => { - getEnstrustmentStateEnumList(); - getEntrustmentPage(); + exantePerformanceSelects: [], + lookSelrcts: [], + EntrustmentId: '', //瀹℃牳鏃跺鎵樺嚱id + formBack: { + id: '', + remark: '', + }, }); + Moment, + onMounted(() => { + getEnstrustmentStateEnumList(); + getEntrustmentPage(); + }); const getEnstrustmentStateEnumList = () => { trustLetterManagementFinance.getEnstrustmentStateEnumList().then(res => { data.projectStates = res.data; @@ -633,8 +693,9 @@ export default { data.exantePerformanceSelects = val; }; //瀹℃牳 - const onJudgePreView = row => { - data.flag == 1; + const onJudgePreView = (row) => { + data.EntrustmentId = row.id; + data.flag = 1; trustLetterManagementFinance .getProjectListByEntrustmentId({ id: row.id }) .then(res => { @@ -643,8 +704,8 @@ export default { }); }; //鏌ョ湅 - const onLook = row => { - data.flag == 0; + const onLook = (row) => { + data.flag = 0; trustLetterManagementFinance .getProjectListByEntrustmentId({ id: row.id }) .then(res => { @@ -652,28 +713,134 @@ export default { }); data.onJudgePreViewDialog = true; }; + //涓嬭浇濮旀墭鍑� + const onDownLoadEntrustmentPdf = async (row) => { + const res = await trustLetterManagementFinance.downloadEntrustmentPdf( + row.id + ); + console.log(res); + }; + //涓嬭浇椤圭洰鐢虫姤 + const onDownLoad = async (row) => { + const res = await trustLetterManagementFinance.downloadProjectPdf(row.id); + console.log(res); + }; const onJudgePreViewSure = () => { data.onJudgePreViewDialog = false; }; - const onBack = () => { + const onBack = (row) => { + data.formBack.id = row.id; data.onBackDialog = true; }; - + //鍗曚釜閫€鍥� const onBackSure = () => { - data.onBackDialog = true; + trustLetterManagementFinance + .batchAuditBack({ id: data.EntrustmentId, ids: [data.formBack.id] }) + .then((res) => { + if (res.code == '00000') { + ElMessage.success('閫€鍥炴垚鍔�'); + data.onBackDialog = false; + data.onJudgePreViewDialog = false; + getEntrustmentPage(); + } + }); }; - - const onPass = () => { - data.onPassDialog = true; + //鍗曚釜閫氳繃 + const onPass = (row) => { + ElMessageBox.confirm('鏄惁纭閫氳繃?', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(() => { + trustLetterManagementFinance + .batchAuditPass({ id: data.EntrustmentId, ids: new Array(row.id) }) + .then(() => { + ElMessage.success('閫氳繃鎴愬姛'); + getEntrustmentPage(); + }) + .catch(() => { + ElMessage.error('閫氳繃澶辫触'); + }); + }) + .catch((e) => { + console.log(e); + ElMessage({ + type: 'info', + message: '鍙栨秷閫氳繃', + }); + }); }; - - const onView = () => { - // data.onViewDialog = true; + //鏌ョ湅瀹℃牳鎰忚 + const onView = (row) => { + data.LookInfo.parentId = row.id; + trustLetterManagementFinance + .getProjectAuditOpinionPage({ + ...data.LookInfo, + type: 1, + }) + .then((res) => { + data.onViewTableInfo = res.data; + data.LookInfo.pageIndex = res.pageIndex; + data.LookInfo.pageSize = res.pageSize; + data.total = res.total; + }); + data.onViewDialog = true; }; - - const onPreView = () => { - router.push('/i/item-entry/declaration-preview'); + const changePageLook = (val) => { + data.LookInfo.pageIndex = val.page; + data.LookInfo.pageSize = val.limit; + trustLetterManagementFinance + .getProjectAuditOpinionPage({ + ...data.LookInfo, + type: 1, + }) + .then((res) => { + data.onViewTableInfo = res.data; + data.LookInfo.pageIndex = res.pageIndex; + data.LookInfo.pageSize = res.pageSize; + data.total = res.total; + }); + }; + //瀹℃牳閫夊彇鏁版嵁 + const handleSelectionChangeLook = (val) => { + data.lookSelrcts = val.map((item) => item.id); + }; + //鎵归噺閫氳繃 + const batchAuditPass = () => { + trustLetterManagementFinance + .batchAuditPass({ id: data.EntrustmentId, ids: data.lookSelrcts }) + .then((res) => { + if (res.code == '00000') { + ElMessage.success('鎵归噺閫氳繃鎴愬姛'); + data.onJudgePreViewDialog = false; + getEntrustmentPage(); + } + }); + }; + //鎵归噺閫€鍥� + const batchAuditBack = () => { + trustLetterManagementFinance + .batchAuditBack({ id: data.EntrustmentId, ids: data.lookSelrcts }) + .then((res) => { + if (res.code == '00000') { + ElMessage.success('鎵归噺閫€鍥炴垚鍔�'); + data.onJudgePreViewDialog = false; + getEntrustmentPage(); + } + }); + }; + //棰勮 + const onPreView = (row) => { + router.push({ + path: `/i/item-entry/exante-performance-evaluation-function-edit`, + query: { + id: row.id, + judgepreview: true, + }, + }); + // router.push('/i/item-entry/declaration-preview'); }; const onJudgeView = () => { @@ -687,6 +854,7 @@ export default { // }; const selectYear = () => {}; return { + Moment, getEnstrustmentStateEnumList, getEntrustmentPage, selectYear, @@ -700,10 +868,16 @@ export default { onJudgePreViewSure, onJudgePreView, onLook, + onDownLoadEntrustmentPdf, + onDownLoad, onJudgeView, onEditeSure, changePage, + changePageLook, + handleSelectionChangeLook, handleSelectionChange, + batchAuditPass, + batchAuditBack, exantePerformanceEdite, // onEntrustingLetter, ...toRefs(data) diff --git a/WebSite/src/views/item-entry/trust-letter-management/index.vue b/WebSite/src/views/item-entry/trust-letter-management/index.vue index 3e7c90e430ced3a6b1607b771699b3c57127aaec..20b4b6f81d8370bd06ec52e94622dfec4802c878 100644 --- a/WebSite/src/views/item-entry/trust-letter-management/index.vue +++ b/WebSite/src/views/item-entry/trust-letter-management/index.vue @@ -119,8 +119,8 @@ size="small" v-if=" scope.row.entrustmentState == 5 || - scope.row.entrustmentState == 6 || - scope.row.entrustmentState == 9 + scope.row.entrustmentState == 6 || + scope.row.entrustmentState == 9 " @click="onDownLoad(scope.row)" >涓嬭浇</el-button @@ -134,7 +134,7 @@ size="small" v-if=" scope.row.entrustmentState != 2 && - scope.row.entrustmentState != 7 + scope.row.entrustmentState != 7 " @click="handleClick(scope.row)" >鏌ョ湅</el-button @@ -148,7 +148,7 @@ size="small" v-if=" scope.row.entrustmentState == 2 || - scope.row.entrustmentState == 7 + scope.row.entrustmentState == 7 " @click="onJudgePreView(scope.row)" >鎿嶄綔</el-button @@ -208,7 +208,7 @@ width="45%" destroy-on-close > - <el-form ref="formRef" label-width="80px"> + <el-card> <el-table :data="onViewTableInfo" highlight-current-row @@ -219,24 +219,33 @@ > <el-table-column class="positionStyle" - prop="auditor" - label="瀹℃牳浜�" - align="center" - ></el-table-column> - <el-table-column - class="positionStyle" - prop="auditTime" + prop="createDate" label="瀹℃牳鏃堕棿" align="center" - ></el-table-column> + > + <template #default="scope"> + {{ + scope.row.createDate + ? Moment(scope.row.createDate).format('YYYY-MM-DD HH:mm:ss') + : '' + }} + </template> + </el-table-column> <el-table-column class="positionStyle" - prop="auditopinion" + prop="remark" label="瀹℃牳鎰忚" align="center" ></el-table-column> </el-table> - </el-form> + <Pagination + style="padding-bottom: 10px" + :page="LookInfo.pageIndex" + :limit="LookInfo.pageSize" + :total="total" + @pagination="changePageLook" + /> + </el-card> <template #footer> <span class="dialog-footer"> <el-button @click="onViewDialog = false">鍙� 娑�</el-button> @@ -311,7 +320,7 @@ @click="onChange(scope.row)" v-if=" status == 1 && - (scope.row.stateCode == 3 || scope.row.stateCode == 5) + (scope.row.stateCode == 3 || scope.row.stateCode == 5) " > 缂栬緫 @@ -601,6 +610,8 @@ import { reactive, toRefs, onMounted } from 'vue'; import { use } from 'echarts/core'; import { useRouter } from 'vue-router'; import trustLetterManagement from '@/api/trust-letter-management'; +import exantePerformanceInquiry from '@/api/exante-performance-inquiry'; +import trustLetterManagementFinance from '@/api/trust-letter-management-finance'; import { ElMessage } from 'element-plus'; use([]); @@ -615,10 +626,10 @@ export default { budYear: '', entrustmentState: '', pageIndex: 1, - pageSize: 10 + pageSize: 10, }, queryGenerateDelegateInfo: { - budYear: '2023' + budYear: '2023', }, projectStates: [], onEntrustingLetterTableInfo: [], @@ -635,28 +646,34 @@ export default { onViewTableInfo: [], onViewAppraisalResultTableInfo: [], exantePerformanceTableInfo: { - tableInfo: [] + tableInfo: [], }, exantePerformanceSelects: [], tableId: [], - tableYear: '' + tableYear: '', + LookInfo: { + pageIndex: 1, + pageSize: 10, + parentId: '', + }, + total: 1, }); onMounted(() => { getEnstrustmentStateEnumList(); getEntrustmentPageDept(); }); - const changePage = val => { + const changePage = (val) => { data.queryInfo.pageIndex = val; getEntrustmentPageDept(); }; - const exantePerformanceEdite = row => { + const exantePerformanceEdite = (row) => { data.onEditeIndexDialog = true; data.editInfo.num = row.num; data.editInfo.id = row.id; }; const onEditeSure = () => { data.onEditeIndexDialog = false; - data.exantePerformanceTableInfo.tableInfo.forEach(res => { + data.exantePerformanceTableInfo.tableInfo.forEach((res) => { if (res.id == data.editInfo.id) { res.num = data.editInfo.num; } @@ -664,8 +681,8 @@ export default { }; // 鏌ヨ const onQuery = async () => { - data.exantePerformanceSelects.forEach(r => { - data.exantePerformanceTableInfo.tableInfo.map(x => { + data.exantePerformanceSelects.forEach((r) => { + data.exantePerformanceTableInfo.tableInfo.map((x) => { if (x.id == r.id) { return (x.enableOrNot = '鏄�'); } @@ -679,44 +696,44 @@ export default { }; //鑾峰彇涓嬫媺妗� const getEnstrustmentStateEnumList = () => { - trustLetterManagement.getEnstrustmentStateEnumList().then(res => { + trustLetterManagement.getEnstrustmentStateEnumList().then((res) => { data.projectStates = res.data; }); }; //鍒嗛〉鏌ヨ琛ㄦ牸鏁版嵁 const getEntrustmentPageDept = () => { - trustLetterManagement.getEntrustmentPageDept(data.queryInfo).then(res => { - data.exantePerformanceTableInfo.tableInfo = res.data; - data.queryInfo.pageIndex = res.pagaIndex; - data.queryInfo.pageSize = res.pagaSize; - data.dataCount = res.total; - }); + trustLetterManagement + .getEntrustmentPageDept(data.queryInfo) + .then((res) => { + data.exantePerformanceTableInfo.tableInfo = res.data; + data.dataCount = res.total; + }); }; - const handleSelectionChange = val => { + const handleSelectionChange = (val) => { console.log(val); data.exantePerformanceSelects = val; }; //鐐瑰嚮鎿嶄綔鏌ヨ寮圭獥鍐呰〃鏍兼暟鎹� - const onJudgePreView = row => { + const onJudgePreView = (row) => { trustLetterManagement .getProjectListByEntrustmentId({ id: row.id }) - .then(res => { + .then((res) => { data.onPreAuditTableInfo = res.data; data.onJudgePreViewDialog = true; }); }; //鐐瑰嚮鏌ョ湅 - const handleClick = row => { + const handleClick = (row) => { trustLetterManagement .getProjectListByEntrustmentId({ id: row.id }) - .then(res => { + .then((res) => { data.status = 0; data.onPreAuditTableInfo = res.data; data.onJudgePreViewDialog = true; }); }; //鎿嶄綔寮圭獥鐨勭紪杈� - const onChange = row => { + const onChange = (row) => { //鎵撳紑鍙︿竴涓〉闈㈢殑淇敼鐨勫脊绐� console.log(row.id); }; @@ -725,13 +742,13 @@ export default { trustLetterManagement .saveEntrustment({ budYear: data.queryGenerateDelegateInfo.budYear, - ids: data.tableId + ids: data.tableId, }) - .then(res => { + .then((res) => { if (res.data == 1) { ElMessage({ message: '淇濆瓨鎴愬姛', - type: 'success' + type: 'success', }); data.onEntrustingLetterDialog = false; getEntrustmentPageDept(); @@ -739,8 +756,8 @@ export default { }); }; //閫変腑濮旀墭鍑芥暟鎹� - const handleSelectionChange_weituo = val => { - data.tableId = val.map(item => { + const handleSelectionChange_weituo = (val) => { + data.tableId = val.map((item) => { return item.id; }); //console.log(data.tableId); //鎷垮埌id,浣滀负鐢熸垚濮旀墭鍑界殑鍙傛暟 @@ -761,12 +778,41 @@ export default { data.onPassDialog = true; }; - const onView = () => { - // data.onViewDialog = true; + const onView = (row) => { + data.LookInfo.parentId = row.id; + exantePerformanceInquiry + .getProjectAuditOpinionPage({ ...data.LookInfo, + type: 1, }) + .then((res) => { + data.onViewTableInfo = res.data; + data.total = res.total; + }); + data.onViewDialog = true; }; - - const onPreView = () => { - router.push('/i/item-entry/declaration-preview'); + const changePageLook = (val) => { + data.LookInfo.pageIndex = val.page; + data.LookInfo.pageSize = val.limit; + trustLetterManagementFinance + .getProjectAuditOpinionPage({ + ...data.LookInfo, + type: 1, + }) + .then((res) => { + data.onViewTableInfo = res.data; + data.LookInfo.pageIndex = res.pageIndex; + data.LookInfo.pageSize = res.pageSize; + data.total = res.total; + }); + }; + const onPreView = (row) => { + router.push({ + path: `/i/item-entry/exante-performance-evaluation-function-edit`, + query: { + id: row.id, + judgepreview: true, + }, + }); + //router.push('/i/item-entry/declaration-preview'); }; const onJudgeView = () => { @@ -778,9 +824,9 @@ export default { const onEntrustingLetter = () => { trustLetterManagement .getPassProjectTypeList({ - budYear: data.queryGenerateDelegateInfo.budYear + budYear: data.queryGenerateDelegateInfo.budYear, }) - .then(res => { + .then((res) => { data.onEntrustingLetterTableInfo = res.data; data.onEntrustingLetterDialog = true; }); @@ -789,6 +835,7 @@ export default { return { selectYear, onView, + changePageLook, onBack, onPass, onPreView, @@ -809,9 +856,9 @@ export default { handleSelectionChange, exantePerformanceEdite, onEntrustingLetter, - ...toRefs(data) + ...toRefs(data), }; - } + }, }; </script>