diff --git a/WebSite/src/api/review-management-operation.js b/WebSite/src/api/review-management-operation.js index bebd4fca43bd618878066b13e81cb94919dd4208..4d57f2af1422674924148c1e23f5217183fba923 100644 --- a/WebSite/src/api/review-management-operation.js +++ b/WebSite/src/api/review-management-operation.js @@ -222,6 +222,35 @@ class operation extends Base { data ); } + //鍏叡鏂规椤圭洰绫昏〃 + static getProjectListByRelatedId(data) { + return request.post('/planReview/getProjectListByRelatedId', data); + } + //璇勫绠$悊鏌ヨ鍒嗛〉 + static getClaimEnutrustmentALLList(data) { + return request.post('/entrustment/getClaimEnutrustmentALLList', data); + } + //涓婁紶璇勫鎶ュ憡 + static uploadReviewReportFile(data) { + return request({ + url: '/projectType/uploadReviewReportFile', + method: 'get', + responseType: 'blob', + data + }); + } + //鏇存柊璇勫鍒楄〃 + static modifyFileParentId(data) { + return request.post('/projectType/modifyFileParentId', data); + } + //涓嬭浇璇勫鍒楄〃 + static downloadAttachFileById(fileId) { + return request({ + url: '/projectType/downloadAttachFileById?fileId=' + fileId, + method: 'get', + responseType: 'blob' + }); + } } export default operation; diff --git a/WebSite/src/views/item-entry/manuscript/index.vue b/WebSite/src/views/item-entry/manuscript/index.vue index 7096d9021fa058078d6b4eccf4797c666606b401..a3117ce79b814cc4b3de1a373cbf78e8aa0d9507 100644 --- a/WebSite/src/views/item-entry/manuscript/index.vue +++ b/WebSite/src/views/item-entry/manuscript/index.vue @@ -559,6 +559,7 @@ import { use } from 'echarts/core'; import { useRouter } from 'vue-router'; import operation from '@/api/review-management-operation'; import { ElMessage } from 'element-plus'; +import Account from '@/api/Account'; use([]); export default { name: 'manuscript', @@ -674,7 +675,12 @@ export default { relatedPerformanceGoalScore: 0, riskRepeatedInvestmentScore: 0, totalScore: 0 - } + }, + expertId: '', + parentId: '', + expertTel: '', + expertName: '', + relatedId: '' }); const total1 = computed(() => { return ( @@ -715,11 +721,37 @@ export default { total1.value + total2.value + total3.value + total4.value + total5.value ); }); - onMounted(() => { + onMounted(async () => { + if ( + router.currentRoute.value.query.token != '' && + router.currentRoute.value.query.token + ) { + await Account.login(router.currentRoute.value.query.token, ''); + } + console.log(router.currentRoute.value.query); + data.relatedId = router.currentRoute.value.query.relatedId; + data.expertId = router.currentRoute.value.query.expertId; + data.expertTel = router.currentRoute.value.query.expertTel; + data.expertName = router.currentRoute.value.query.expertName; data.idS = router.currentRoute.value.query.id; - data.tableArr = JSON.parse(router.currentRoute.value.query.arrList)[0]; getProjectInfo(); + + getRelatedExpertManuscript(); }); + const getRelatedExpertManuscript = () => { + operation + .getRelatedExpertManuscript({ + relatedId: data.relatedId, + expertId: data.expertId, + parentId: data.idS, + expertTel: data.expertTel, + expertName: data.expertName + }) + .then(res => { + data.tableArr = res.data[0]; + }); + }; + const goBack = () => { router.go(-1); }; @@ -825,6 +857,7 @@ export default { }; return { saveRelatedExpertManuscript, + getRelatedExpertManuscript, goBack, total5, total6, diff --git a/WebSite/src/views/item-entry/pre-declaration-operation-query/index.vue b/WebSite/src/views/item-entry/pre-declaration-operation-query/index.vue index a9f4293747bcc24b08feadc5f839b2c190800f01..db48615ec905bc93c8362636f0fb221de12d5e5d 100644 --- a/WebSite/src/views/item-entry/pre-declaration-operation-query/index.vue +++ b/WebSite/src/views/item-entry/pre-declaration-operation-query/index.vue @@ -19,14 +19,13 @@ placeholder="璇烽€夋嫨" style="width: 100%;" > - <el-option>1</el-option> - <!-- <el-option + <el-option v-for="item in projectStates" - :key="item.value" - :label="item.label" - :value="item.value" + :key="item.key" + :label="item.name" + :value="item.key" > - </el-option> --> + </el-option> </el-select> </el-form-item> <el-form-item> @@ -35,20 +34,10 @@ type="primary" icon="Search" size="small" - @click="onQuery" + @click="changePage({ page: '', limit: '' }, 1)" >鏌ヨ</el-button > </el-form-item> - <el-form-item> - <el-button - plain - type="primary" - icon="Download" - size="small" - @click="onDistributionOffice" - >鎵归噺瀵煎嚭椤圭洰鐢虫姤涔�</el-button - > - </el-form-item> </el-form> </el-card> <el-card class="box-card" style="margin-top:20px;"> @@ -71,19 +60,19 @@ ></el-table-column> <el-table-column class="positionStyle" - prop="trustLetterCode" + prop="entrustmentNum" label="濮旀墭鍑界紪鍙�" align="center" ></el-table-column> <el-table-column class="positionStyle" - prop="year" + prop="budYear" label="鐢虫姤骞翠唤" align="center" ></el-table-column> <el-table-column class="positionStyle" - prop="officeName" + prop="deptName" label="涓氬姟澶勫" align="center" ></el-table-column> @@ -95,32 +84,25 @@ ></el-table-column> <el-table-column class="positionStyle" - prop="trustLetterStatus" + prop="entrustmentStateName" label="濮旀墭鍑界姸鎬�" align="center" /> <el-table-column class="positionStyle" - prop="firmName" + prop="financialOperatorName" label="椤圭洰璐熻矗浜�" align="center" /> <el-table-column class="positionStyle" - prop="firmName" - label="璇勫鏃ユ湡" - align="center" - /> - <el-table-column - class="positionStyle" - prop="firmName" + prop="officeName" label="浜嬪姟鎵€鍚嶇О" align="center" /> <el-table-column label="鎿嶄綔" align="center" width="350"> <template #default="scoped"> <el-button - v-if="scoped.row.watch" plain type="info" icon="View" @@ -129,7 +111,11 @@ >鏌ョ湅</el-button > <el-button - v-if="scoped.row.letterAuthorization" + v-if=" + scoped.row.entrustmentState == 5 || + scoped.row.entrustmentState == 6 || + scoped.row.entrustmentState == 9 + " plain type="primary" size="small" @@ -144,140 +130,103 @@ style="padding-bottom:10px" :page="exantePerformanceTableInfo.pageIndex" :limit="exantePerformanceTableInfo.pageSize" - :total="dataCount" + :total="exantePerformanceTableInfo.total" @pagination="changePage" /> </div> </el-card> + <ViewPage + v-if="state" + :state="state" + :planId="planId" + @changData="changData" + /> </div> </template> <script> -import { reactive, toRefs } from 'vue'; +import { reactive, toRefs, onMounted } from 'vue'; import { use } from 'echarts/core'; -import { useRouter } from 'vue-router'; +import operation from '@/api/review-management-operation'; +import ViewPage from '../view-page/index'; use([]); export default { name: 'PreDeclarationOperationQuery', - components: {}, + components: { ViewPage }, setup() { - const router = useRouter(); const data = reactive({ + planId: '', + state: false, + projectStates: [], queryInfo: { year: '', - projectState: '' + projectState: '', + businessOfficeName: '' }, - dataCount: 2, firmName: '', exantePerformanceTableInfo: { - tableInfo: [ - { - id: '111', - trustLetterCode: '2023001', - year: '2023', - officeName: '鍩圭澶�', - projectNum: 1, - trustLetterStatus: '璐㈣祫涓績宸插彈鐞�', - firmName: '', - watch: true, - letterAuthorization: true - }, - { - id: '114', - trustLetterCode: '2023004', - year: '2023', - officeName: '绉樹功澶勶紙鐮旂┒瀹わ級', - projectNum: 2, - trustLetterStatus: '寰呴瀹�', - firmName: '', - watch: true, - letterAuthorization: true - }, - { - id: '114', - trustLetterCode: '2023004', - year: '2023', - officeName: '绉樹功澶勶紙鐮旂┒瀹わ級', - projectNum: 2, - trustLetterStatus: '寰呰储璧勪腑蹇冨彈鐞嗭紝鍙墦鍗�', - firmName: '', - watch: true, - confirmAcceptance: true - }, - { - id: '114', - trustLetterCode: '2023004', - year: '2023', - officeName: '绉樹功澶勶紙鐮旂┒瀹わ級', - projectNum: 2, - trustLetterStatus: '璐㈣祫涓績閫€鍥�', - firmName: '', - watch: true, - confirmAcceptance: true - } - ], + tableInfo: [], pageIndex: 1, - pageSize: 10 + pageSize: 10, + total: 0 }, exantePerformanceSelects: [], - firmNames: [ - { - value: '娌腑浜嬪姟鎵€', - label: '娌腑浜嬪姟鎵€' - }, - { - value: '涓婃捣璐㈢憺浼氳甯堜簨鍔℃墍', - label: '涓婃捣璐㈢憺浼氳甯堜簨鍔℃墍' - }, - { - value: '涓婃捣璇氭槍浼氳甯堜簨鍔℃墍', - label: '涓婃捣璇氭槍浼氳甯堜簨鍔℃墍' - }, - { - value: '涓婃捣瀹夊崕浼氳甯堜簨鍔℃墍鏈夐檺鍏徃', - label: '涓婃捣瀹夊崕浼氳甯堜簨鍔℃墍鏈夐檺鍏徃' - } - ] + firmNames: [] }); + onMounted(() => { + getEnstrustmentStateEnumList(); + getEntrustmentPage(); + }); + //濮旀墭鍑界姸鎬� + const getEnstrustmentStateEnumList = () => { + operation.getEnstrustmentStateEnumList().then(res => { + data.projectStates = res.data; + }); + }; + //椤甸潰琛ㄦ牸鏁版嵁 + const getEntrustmentPage = () => { + operation + .getClaimEnutrustmentALLList({ + budYear: data.queryInfo.year, + deptName: data.queryInfo.businessOfficeName, + entrustmentState: data.queryInfo.projectState, + pageIndex: data.exantePerformanceTableInfo.pageIndex, + pageSize: data.exantePerformanceTableInfo.pageSize + }) + .then(res => { + console.log(res); + data.exantePerformanceTableInfo.tableInfo = res.data; + data.exantePerformanceTableInfo.total = res.total; + }); + }; //鍒囨崲鍒嗛〉 - const changePage = () => {}; - - //鏌ヨ - const onQuery = () => { - console.log(data.queryInfo); - // if (data.queryInfo.projectName) { - // const a = data.exantePerformanceTableInfo.tableInfo.filter(x => { - // return x.projectName == data.queryInfo.projectName; - // }); - // data.exantePerformanceTableInfo.tableInfo = a; - // } - // if (data.queryInfo.officeName) { - // const a = data.exantePerformanceTableInfo.tableInfo.filter(x => { - // return x.officeName == data.queryInfo.officeName; - // }); - // data.exantePerformanceTableInfo.tableInfo = a; - // } + const changePage = (num, val) => { + if (num) { + data.exantePerformanceTableInfo.pageIndex = 1; + data.exantePerformanceTableInfo.pageSize = 10; + } else { + data.exantePerformanceTableInfo.pageIndex = val.page; + data.exantePerformanceTableInfo.pageSize = val.limit; + } + getEntrustmentPage(); }; - //棰勫瀹屾垚 const onInquiryComplete = () => { data.onInquiryCompleteDialog = true; }; - - //鏌ョ湅 - const watchDetail = () => { - router.push('/i/item-entry/declaration-preview'); + const changData = datas => { + data.state = datas; }; - //閫€鍥� const onBack = () => { data.onBackDialog = true; }; //鏌ョ湅 - const onWatch = () => { - console.log('鏌ョ湅'); + const onWatch = row => { + data.state = true; + data.planId = row.id; }; //鎵撳嵃濮旀墭鍑� @@ -308,14 +257,16 @@ export default { data.onDistributionOfficeDialog = false; }; return { + getEnstrustmentStateEnumList, onLetterAuthorization, + getEntrustmentPage, onInquiryComplete, changePage, + changData, + onWatch, onBack, onBackSure, - onQuery, - watchDetail, onaccomplish, handleSelectionChange, onDistributionOffice, diff --git a/WebSite/src/views/item-entry/pre-declaration-operation/index.vue b/WebSite/src/views/item-entry/pre-declaration-operation/index.vue index 2968d4d23f26bd85f5db52580518a508e73c9345..b35c792196ce011cde68f4561ac6016a8b4431dc 100644 --- a/WebSite/src/views/item-entry/pre-declaration-operation/index.vue +++ b/WebSite/src/views/item-entry/pre-declaration-operation/index.vue @@ -192,12 +192,11 @@ @click="onWatch(scope.row)" >鏌ョ湅</el-button > + <el-button v-if=" - scope.row.entrustmentState == 7 || - scope.row.entrustmentState == 5 || + scope.row.entrustmentState == 5 || scope.row.entrustmentState == 6 || - scope.row.entrustmentState == 8 || scope.row.entrustmentState == 9 " plain @@ -813,17 +812,30 @@ </el-form-item> <el-form-item> <el-upload + :file-list="fileList" + class="upload-demo" action="#" - :multiple="false" - :before-upload="beforeUpload" - :http-request="handleRequest" + multiple :show-file-list="false" + :limit="1" + :on-change="uploadChanges" + :http-request="UploadRequestOptions" > <el-button plain type="primary" icon="Upload" size="small" >涓婁紶璇勫鎶ュ憡</el-button > </el-upload> </el-form-item> + <el-form-item> + <el-button + plain + type="primary" + icon="Upload" + size="small" + @click="buttonUp" + >涓嬭浇璇勫鎶ュ憡</el-button + > + </el-form-item> </el-form> <el-table :data="reportTableInfo.tableInfo" @@ -868,12 +880,38 @@ <el-table-column class="positionStyle" label="鎿嶄綔" align="center" ><template #default="scope"> <el-button + plain + size="small" + @click="onRecord(scope.row)" + v-if="scope.row.feedbackStatus == 1" + >鏌ョ湅</el-button + > + <el-button + v-if="scope.row.feedbackStatus == 0" plain type="primary" size="small" - icon="edit" + @click="onRecor(scope.row)" + >缂栬緫</el-button + > + <el-button + v-if=" + scope.row.feedbackStatus == 1 || + scope.row.feedbackStatus == 0 + " + plain + type="primary" + size="small" + @click="onReco(scope.row)" + >涓嬭浇</el-button + > + <el-button + v-if="scope.row.feedbackStatus == 0" + plain + type="danger" + size="small" @click="onRecord(scope.row)" - >褰曞叆涓撳宸ヤ綔搴曠ǹ</el-button + >鍒犻櫎</el-button > </template> </el-table-column> @@ -1378,7 +1416,11 @@ > <el-form> <el-form-item label="椤圭洰鍚嶇О锛�"> - <el-select v-model="ProjectFeedback" @change="selectCV"> + <el-select + v-model="ProjectFeedback" + @change="selectCV" + :disabled="disabled1" + > <el-option v-for="item in Feedback" :key="item.id" @@ -1392,29 +1434,28 @@ </el-select> </el-form-item> <el-form-item label="涓撳鎵撳垎鎯呭喌锛�"> - <table cellspacing="0" style="border: 1px solid #d5d5d5"> + <table + class="tab_table3" + cellspacing="0" + style="border: 1px solid #d5d5d5" + > <tr> - <td - class="tdStyle" - v-for="(item, index) in markInfo" - :key="index" - > - {{ item.label }} + <td v-for="(item, index) in markInfo" :key="index"> + {{ item.expertName }} </td> + <td v-if="markInfo.length != 0">骞冲潎寰楀垎</td> </tr> <tr> - <td - class="tdStyle" - v-for="(item, index) in markInfo" - :key="index" - > - {{ item.value }} + <td v-for="(item, index) in markInfo" :key="index"> + {{ item.totalScore }} </td> + <td v-if="markInfo.length != 0">{{ avgScore }}</td> </tr> </table> </el-form-item> <el-form-item label="涓撳鎰忚锛�"> <el-input + :disabled="disabled" v-model="textarea" :rows="4" type="textarea" @@ -1422,7 +1463,7 @@ /> </el-form-item> <el-form-item label="璇勫缁撹锛�"> - <el-radio-group v-model="radio"> + <el-radio-group v-model="radio" :disabled="disabled"> <el-radio label="寤鸿浜堜互鏀寔" size="small">寤鸿浜堜互鏀寔</el-radio> <el-radio label="寤鸿璋冩暣瀹屽杽鍚庝簣浠ユ敮鎸�" size="small" >寤鸿璋冩暣瀹屽杽鍚庝簣浠ユ敮鎸�</el-radio @@ -1433,10 +1474,13 @@ </el-form> <template #footer> <span class="dialog-footer"> - <el-button type="primary" @click="saveEntrustmentFeedback" - >淇濆瓨鎬ラ渶濉啓</el-button + <el-button + type="primary" + @click="saveEntrustmentFeedback" + v-if="!disabled" + >淇濆瓨缁х画濉啓</el-button > - <el-button type="primary" @click="onSaveAndClose" + <el-button type="primary" @click="onSaveAndClose" v-if="!disabled" >淇濆瓨骞跺叧闂�</el-button > <el-button @click="addFeedbackDialog = false">鍏� 闂�</el-button> @@ -1981,6 +2025,60 @@ </span> </template> </el-dialog> + <el-dialog + class="tableNew" + top="120px" + v-model="onNews" + width="40%" + destroy-on-close + > + <el-table + :data="DownloadCopy" + highlight-current-row + width="100%" + border + stripe + @selection-change="singleElection" + :header-cell-class-name="cellClass" + > + <el-table-column width="55"> + <template #default="scoped"> + <!-- 鍙互鎵嬪姩鐨勪慨鏀筶abel鐨勫€硷紝浠庤€屾帶鍒堕€夋嫨鍝竴椤� --> + <el-radio + @change="radioTable" + class="radio" + v-model="templateSelection" + :label="scoped.row.id" + > </el-radio + > + </template> + </el-table-column> + <el-table-column + class="positionStyle" + prop="fileName" + label="鏂囦欢鍚�" + align="center" + ></el-table-column> + <el-table-column class="positionStyle" label="鎿嶄綔" align="center" + ><template #default=""> + <el-button + plain + type="danger" + size="small" + icon="Delete" + @click="removeFile" + >鍒犻櫎</el-button + > + </template> + </el-table-column> + </el-table> + <template #footer> + <span class="dialog-footer"> + <el-button @click="onNewIndexDialog = false">鍙� 娑�</el-button> + <el-button type="primary" @click="onOffice">纭� 瀹�</el-button> + </span> + </template> + </el-dialog> </div> </template> @@ -1999,6 +2097,9 @@ export default { setup() { const router = useRouter(); const data = reactive({ + onNews: false, + disabled1: false, + disabled: false, DownloadCopy: [], onNew: false, OptionRow: false, @@ -2148,6 +2249,7 @@ export default { officeName: '', selection: '', selectList: [], + avgScore: '', entrustmentId: '', formBlue: { businessExpertCount: '', @@ -2374,6 +2476,9 @@ export default { const getPlanReviewList = () => { operation.getPlanReviewList({ id: data.reviewTableInfo.id }).then(res => { data.solutionTableInfo.tableInfo = res.data; + data.solution = data.solutionTableInfo.tableInfo[0].reviewAddress; + data.planIds = data.solutionTableInfo.tableInfo[0].id; + getEntrustmentExpertManuscriptList(); }); }; //鏂板缓璇勫鏂规 @@ -2422,7 +2527,7 @@ export default { //鍙楃悊 const onAccept = row => { (data.activeName = 'second'), (data.solutionTableInfo.tableInfo = []); - + data.solution = ''; data.formBlue.businessExpertCount = ''; data.formBlue.financeExpertCount = ''; data.reviewTableInfo.id = row.id; @@ -2647,6 +2752,8 @@ export default { }; //娣诲姞鍙嶉鎰忚 const onAddFeedback = () => { + data.disabled = false; + data.disabled1 = false; data.ProjectFeedback = ''; data.markInfo = []; data.textarea = ''; @@ -2771,10 +2878,13 @@ export default { //鑾峰彇涓撳搴曠ǹ鍒楄〃 const selectTableInfo = v => { data.planIds = v; + getEntrustmentExpertManuscriptList(); + }; + const getEntrustmentExpertManuscriptList = () => { operation .getEntrustmentExpertManuscriptList({ entrustmentId: data.reviewTableInfo.id, - planId: v + planId: data.planIds }) .then(res => { data.expertsWriteTableInfo.tableInfo = res.data; @@ -2793,10 +2903,14 @@ export default { data.projectName = label; data.projectId = value; data.projectNumber = key; + getEntrustmentExpertScoreByProjectId(data.projectId); + }; + const getEntrustmentExpertScoreByProjectId = v => { operation - .getEntrustmentExpertScoreByProjectId({ parentId: value }) + .getEntrustmentExpertScoreByProjectId({ parentId: v }) .then(res => { - data.markInfo = res.data; + data.markInfo = res.data[0].expertManuscriptOuts; + data.avgScore = res.data[0].avgScore; }); }; //鎰忚淇濆瓨 @@ -2805,7 +2919,7 @@ export default { .saveEntrustmentFeedback({ conclusionStatus: data.radio, entrustmentId: data.reviewTableInfo.id, - expertAverage: 0, + expertAverage: data.avgScore, expertRemark: data.textarea, feedbackStatus: 0, parentId: data.projectId, @@ -2948,6 +3062,87 @@ export default { const rowId = row => { data.expertTel = row.expertTel; }; + //鏌ョ湅 + const onRecord = row => { + data.disabled = true; + data.disabled1 = true; + data.addFeedbackDialog = true; + getEntrustmentExpertScoreByProjectId(row.id); + data.ProjectFeedback = row.projectName; + data.textarea = row.expertRemark; + data.radio = row.conclusionStatus; + }; + //缂栬緫 + const onRecor = row => { + data.disabled1 = true; + data.addFeedbackDialog = true; + getEntrustmentExpertScoreByProjectId(row.id); + data.ProjectFeedback = row.projectName; + data.textarea = row.expertRemark; + data.radio = row.conclusionStatus; + }; + const buttonUp = () => { + data.onNews = true; + }; + const uploadChanges = file => { + const formData = new FormData(); + formData.append('file', file.raw); + operation.uploadReviewReportFile(formData).then(res => { + console.log(res); + if (res.filename) { + 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 || res.filename + ); + } else { + var downloadElement = document.createElement('a'); + var href = window.URL.createObjectURL(blob); // 鍒涘缓涓嬭浇鐨勯摼鎺� + downloadElement.href = href; + downloadElement.download = res.filename; // 涓嬭浇鍚庢枃浠跺悕 + document.body.appendChild(downloadElement); + downloadElement.click(); // 鐐瑰嚮涓嬭浇 + document.body.removeChild(downloadElement); // 涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(href); // 閲婃斁鎺塨lob瀵硅薄 + } + } else { + data.fileId = res.data; + modifyFileParentId(); + } + }); + }; + const modifyFileParentId = () => { + operation.modifyFileParentId({ fileIds: [], parentId: 0 }).then(res => { + console.log(res); + }); + }; + const downloadAttachFileById = () => { + operation.downloadAttachFileById(data.removeId).then(res => { + console.log(res); + if (res.filename) { + 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 || res.filename + ); + } else { + var downloadElement = document.createElement('a'); + var href = window.URL.createObjectURL(blob); // 鍒涘缓涓嬭浇鐨勯摼鎺� + downloadElement.href = href; + downloadElement.download = res.filename; // 涓嬭浇鍚庢枃浠跺悕 + document.body.appendChild(downloadElement); + downloadElement.click(); // 鐐瑰嚮涓嬭浇 + document.body.removeChild(downloadElement); // 涓嬭浇瀹屾垚绉婚櫎鍏冪礌 + window.URL.revokeObjectURL(href); // 閲婃斁鎺塨lob瀵硅薄 + } + } + data.onNew = false; + }); + }; // 涓婄Щ const handleMoveUp = (index, row) => { console.log(index, row); @@ -2971,12 +3166,20 @@ export default { ElMessage.warning('澶勪簬搴曠锛屼笉鑳界户缁笅绉�'); } else { let downData = data.printReviewTableInfo.tableInfo[index + 1]; - data.printReviewTableInfo.tableInfo.splice(index + 1, 1); + data.printReviewTableInfo.tableInfo.splice(index + 1, 1); data.printReviewTableInfo.tableInfo.splice(index, 0, downData); } }; return { + uploadChanges, + downloadAttachFileById, + modifyFileParentId, + onRecor, + buttonUp, + getEntrustmentExpertManuscriptList, radioTable, + getEntrustmentExpertScoreByProjectId, + onRecord, selectCV, rowId, UploadRequestOptions, @@ -3074,6 +3277,17 @@ export default { </script> <style lang="scss" scoped> +.tab_table3 { + width: 100%; + text-align: center; + border-top: 1px solid #dcdfe6; + border-left: 1px solid #dcdfe6; + border-collapse: collapse; + td { + border-bottom: 1px solid #dcdfe6; + border-right: 1px solid #dcdfe6; + } +} .tab_table2 { width: 100%; text-align: center; diff --git a/WebSite/src/views/item-entry/review-scheme-view/index.vue b/WebSite/src/views/item-entry/review-scheme-view/index.vue index 09dbcad05fb7c094fa47f52bee9d4ee8dad489f5..321c6d7ae5ff96de233c6641cbe197e6f1f39382 100644 --- a/WebSite/src/views/item-entry/review-scheme-view/index.vue +++ b/WebSite/src/views/item-entry/review-scheme-view/index.vue @@ -989,24 +989,22 @@ </el-select> </el-form-item> <el-form-item label="涓撳鎵撳垎鎯呭喌锛�"> - <table cellspacing="0" style="border: 1px solid #d5d5d5"> + <table + class="tab_table3" + cellspacing="0" + style="border: 1px solid #d5d5d5" + > <tr> - <td - class="tdStyle" - v-for="(item, index) in markInfo" - :key="index" - > - {{ item.label }} + <td v-for="(item, index) in markInfo" :key="index"> + {{ item.expertName }} </td> + <td v-if="markInfo.length != 0">骞冲潎寰楀垎</td> </tr> <tr> - <td - class="tdStyle" - v-for="(item, index) in markInfo" - :key="index" - > - {{ item.value }} + <td v-for="(item, index) in markInfo" :key="index"> + {{ item.totalScore }} </td> + <td v-if="markInfo.length != 0">{{ avgScore }}</td> </tr> </table> </el-form-item> @@ -1455,6 +1453,7 @@ export default { department: '' }, dataCount: 0, + avgScore: '', queryInfo1: '', queryInfo2: '', valueOption: '', @@ -1589,22 +1588,21 @@ export default { data.ononferenceNoticeDialog = true; }; const changeRadio = v => { - console.log(v); + console.log(v, '111111111111111111'); if (v.expertReviewResult == true) { data.expertInfo.push({ ...v, type: '', - expertTel: v.moblieNumber + expertTel: v.expertTel }); + console.log(data.expertInfo, '22222222222222222222'); } else { data.expertInfo.filter((item, index) => { - console.log(item); if (item.expertName == v.expertName) { return data.expertInfo.splice(index, 1); } }); } - console.log(data.expertInfo, 1111); }; const handleSelectionChange = val => { data.exantePerformanceSelects = val; @@ -1710,7 +1708,6 @@ export default { data.queryInfo2 = data.BaoCunArr[0].reviewHost; data.projecttableInfo = data.BaoCunArr[0].entrustmentOuts; data.expertInfo = data.BaoCunArr[0].planExperts; - data.authorization = data.BaoCunArr[0].planExperts[0].entrustmentId; data.weiID = data.projecttableInfo.map(item => { return item.id; @@ -1738,24 +1735,17 @@ export default { data.Option = false; }; const FillPaper = (row, child) => { - operation - .getRelatedExpertManuscript({ + route.push({ + path: `/i/item-entry/manuscript`, + query: { relatedId: data.relatedId, + id: child.id, expertId: row.expertId, - parentId: child.id, expertTel: row.expertTel, - expertName: row.expertName - }) - .then(res => { - console.log(res); - route.push({ - path: `/i/item-entry/manuscript`, - query: { - id: child.id, - arrList: JSON.stringify(res.data) - } - }); - }); + expertName: row.expertName, + token: '' + } + }); }; const goback = () => { route.go(-1); @@ -1773,6 +1763,11 @@ export default { //娣诲姞鍙嶉鎰忚 const feedbackse = () => { data.addFeedbackDialog = true; + data.ProjectFeedback = ''; + data.markInfo = []; + data.textarea = ''; + data.radio = ''; + getProjectListByEntrustmentId(); }; //tab鏍囩鍒囨崲 const changeTabs = () => { @@ -1962,7 +1957,7 @@ export default { }; //娣诲姞鎰忚鍙嶉椤圭洰 const getProjectListByEntrustmentId = () => { - operation.getProjectListByEntrustmentId({ id: data.resId }).then(res => { + operation.getProjectListByRelatedId({ id: data.resId }).then(res => { data.Feedback = res.data; }); }; @@ -1974,7 +1969,8 @@ export default { operation .getEntrustmentExpertScoreByProjectId({ parentId: value }) .then(res => { - data.markInfo = res.data; + data.markInfo = res.data[0].expertManuscriptOuts; + data.avgScore = res.data[0].avgScore; }); }; //鎰忚淇濆瓨 @@ -2145,6 +2141,17 @@ export default { </script> <style lang="scss" scoped> +.tab_table3 { + width: 100%; + text-align: center; + border-top: 1px solid #dcdfe6; + border-left: 1px solid #dcdfe6; + border-collapse: collapse; + td { + border-bottom: 1px solid #dcdfe6; + border-right: 1px solid #dcdfe6; + } +} .tab_table2 { width: 100%; text-align: center; 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 59414c25fc8cc75729473f2a1d7abd1f0e2ac3bb..589225bf94543fa792ecc2eacb258588da4af1fe 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 @@ -120,11 +120,11 @@ 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="onDownLoadEntrustmentPdf(scope.row)" - >涓嬭浇</el-button + >鎵撳嵃濮旀墭鍑�</el-button > <el-button plain @@ -133,7 +133,7 @@ size="small" v-if=" scope.row.entrustmentState != 1 && - scope.row.entrustmentState != 2 + scope.row.entrustmentState != 2 " @click="onLook(scope.row)" >鏌ョ湅</el-button @@ -145,7 +145,7 @@ size="small" v-if=" scope.row.entrustmentState == 1 || - scope.row.entrustmentState == 2 + scope.row.entrustmentState == 2 " @click="onJudgePreView(scope.row)" >瀹℃牳</el-button @@ -337,10 +337,10 @@ <el-button v-if=" flag == 1 && - (scope.row.stateCode == 2 || - scope.row.stateCode == 6 || - scope.row.stateCode == 10 || - scope.row.stateCode == 15) + (scope.row.stateCode == 2 || + scope.row.stateCode == 6 || + scope.row.stateCode == 10 || + scope.row.stateCode == 15) " plain type="success" @@ -356,13 +356,13 @@ 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) + (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 @@ -756,7 +756,7 @@ export default { financialSupportRationality: '', controllabilityFinancingRisks: '', materialIntegrity: '', - other: '', + other: '' }, flag: 0, queryInfo: { @@ -764,12 +764,12 @@ export default { deptName: '', entrustmentState: '', pageIndex: 1, - pageSize: 10, + pageSize: 10 }, LookInfo: { pageIndex: 1, pageSize: 10, - parentId: '', + parentId: '' }, total: 6, queryGenerateDelegateInfo: {}, @@ -788,21 +788,21 @@ export default { { auditor: '寮犺暰', createDate: '2023-08-19', - remark: '闇€琛ュ厖涓婁紶椤圭洰闄勪欢鏉愭枡', - }, + remark: '闇€琛ュ厖涓婁紶椤圭洰闄勪欢鏉愭枡' + } ], onViewAppraisalResultTableInfo: [], exantePerformanceTableInfo: { - tableInfo: [], + tableInfo: [] }, exantePerformanceSelects: [], lookSelrcts: [], EntrustmentId: '', //瀹℃牳鏃跺鎵樺嚱id formBack: { id: '', - remark: '', + remark: '' }, - rowId: '', + rowId: '' }); Moment, onMounted(() => { @@ -810,49 +810,47 @@ export default { getEntrustmentPage(); }); const getEnstrustmentStateEnumList = () => { - trustLetterManagementFinance - .getEnstrustmentStateEnumList() - .then((res) => { - data.projectStates = res.data; - }); + trustLetterManagementFinance.getEnstrustmentStateEnumList().then(res => { + data.projectStates = res.data; + }); }; const getEntrustmentPage = () => { trustLetterManagementFinance .getEntrustmentPage(data.queryInfo) - .then((res) => { + .then(res => { data.exantePerformanceTableInfo.tableInfo = res.data; data.queryInfo.pageIndex = res.pageIndex; data.queryInfo.pageSize = res.pageSize; data.dataCount = res.total; }); }; - const changePage = (val) => { + const changePage = val => { data.queryInfo.pageIndex = val.page; data.queryInfo.pageSize = val.limit; getEntrustmentPage(); }; - 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; } }); }; - const change = (val) => { + const change = val => { if (val == 0) { trustLetterManagementFinance .getProjectListByEntrustmentId({ id: data.rowId }) - .then((res) => { + .then(res => { data.onPreAuditTableInfo = res.data; }); } else if (val == 1) { - FinanceOffice.getPreliminaryList({ id: data.rowId }).then((res) => { + FinanceOffice.getPreliminaryList({ id: data.rowId }).then(res => { data.PrequalificationTableInfo = res.data; }); } else { @@ -862,8 +860,8 @@ export default { // 鏌ヨ const onQuery = async () => { getEntrustmentPage(); - 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 = '鏄�'); } @@ -875,41 +873,41 @@ export default { ); }; - const handleSelectionChange = (val) => { + const handleSelectionChange = val => { console.log(val); data.exantePerformanceSelects = val; }; //瀹℃牳 - const onJudgePreView = (row) => { + const onJudgePreView = row => { data.EntrustmentId = row.id; data.flag = 1; trustLetterManagementFinance .getProjectListByEntrustmentId({ id: row.id }) - .then((res) => { + .then(res => { data.onPreAuditTableInfo = res.data; data.onJudgePreViewDialog = true; }); }; //鏌ョ湅 - const onLook = (row) => { + const onLook = row => { data.rowId = row.id; data.flag = 0; trustLetterManagementFinance .getProjectListByEntrustmentId({ id: row.id }) - .then((res) => { + .then(res => { data.onPreAuditTableInfo = res.data; }); data.onJudgePreViewDialog = true; }; //涓嬭浇濮旀墭鍑� - const onDownLoadEntrustmentPdf = async (row) => { + const onDownLoadEntrustmentPdf = async row => { const res = await trustLetterManagementFinance.downloadEntrustmentPdf( row.id ); console.log(res); }; //椤圭洰娓呭崟-涓嬭浇椤圭洰鐢虫姤 - const onDownLoad = async (row) => { + const onDownLoad = async row => { const res = await trustLetterManagementFinance.downloadProjectPdf(row.id); console.log(res); }; @@ -917,30 +915,30 @@ export default { data.onJudgePreViewDialog = false; }; - const onBack = (row) => { + const onBack = row => { data.formBack.id = row.id; data.onBackDialog = true; }; //椤圭洰娓呭崟-棰勮 - const onPreView = (row) => { + const onPreView = row => { router.push({ path: `/i/item-entry/exante-performance-evaluation-function-edit`, query: { id: row.id, judgepreview: true, - preview: 1, - }, + preview: 1 + } }); }; //椤圭洰娓呭崟-鏌ョ湅瀹℃牳鎰忚 - const onView = (row) => { + const onView = row => { data.LookInfo.parentId = row.id; trustLetterManagementFinance .getProjectAuditOpinionPage({ ...data.LookInfo, - type: 1, + type: 1 }) - .then((res) => { + .then(res => { data.onViewTableInfo = res.data; data.LookInfo.pageIndex = res.pageIndex; data.LookInfo.pageSize = res.pageSize; @@ -952,7 +950,7 @@ export default { const onBackSure = () => { trustLetterManagementFinance .batchAuditBack({ id: data.EntrustmentId, ids: [data.formBack.id] }) - .then((res) => { + .then(res => { if (res.code == '00000') { ElMessage.success('閫€鍥炴垚鍔�'); data.onBackDialog = false; @@ -962,11 +960,11 @@ export default { }); }; //椤圭洰娓呭崟-鍗曚釜閫氳繃 - const onPass = (row) => { + const onPass = row => { ElMessageBox.confirm('鏄惁纭閫氳繃?', { confirmButtonText: '纭畾', cancelButtonText: '鍙栨秷', - type: 'warning', + type: 'warning' }) .then(() => { trustLetterManagementFinance @@ -980,11 +978,11 @@ export default { ElMessage.error('閫氳繃澶辫触'); }); }) - .catch((e) => { + .catch(e => { console.log(e); ElMessage({ type: 'info', - message: '鍙栨秷閫氳繃', + message: '鍙栨秷閫氳繃' }); }); }; @@ -992,7 +990,7 @@ export default { const batchAuditPass = () => { trustLetterManagementFinance .batchAuditPass({ id: data.EntrustmentId, ids: data.lookSelrcts }) - .then((res) => { + .then(res => { if (res.code == '00000') { ElMessage.success('鎵归噺閫氳繃鎴愬姛'); data.onJudgePreViewDialog = false; @@ -1004,7 +1002,7 @@ export default { const batchAuditBack = () => { trustLetterManagementFinance .batchAuditBack({ id: data.EntrustmentId, ids: data.lookSelrcts }) - .then((res) => { + .then(res => { if (res.code == '00000') { ElMessage.success('鎵归噺閫€鍥炴垚鍔�'); data.onJudgePreViewDialog = false; @@ -1013,31 +1011,31 @@ export default { }); }; //棰勫缁撴灉-涓嬭浇 - const downloadYushen = async (row) => { + const downloadYushen = async row => { const res = await trustLetterManagementFinance.downloadProjectPdf( row.preliminaryId ); console.log(res); }; //棰勫缁撴灉-棰勮 - const onPreViewYushen = (row) => { + const onPreViewYushen = row => { console.log(row); router.push({ path: `/i/item-entry/exante-performance-evaluation-function-edit`, query: { id: row.parentId, judgepreview: true, - preview: 1, - }, + preview: 1 + } }); }; //棰勫缁撴灉-鏌ョ湅棰勫鎰忚 - const onViewYushen = (row) => { + const onViewYushen = row => { if (row.preliminaryId == null) { ElMessage.warning('鏆傛棤棰勫鎰忚'); } else { FinanceOffice.getPreliminaryById({ id: row.preliminaryId }).then( - (res) => { + res => { data.tableObj = res.data[0]; data.writeDialog = true; } @@ -1045,22 +1043,22 @@ export default { } }; //鏌ョ湅瀹℃牳鎰忚鐨勫垎椤� - const changePageLook = (val) => { + const changePageLook = val => { data.LookInfo.pageIndex = val.page; data.LookInfo.pageSize = val.limit; trustLetterManagementFinance .getProjectAuditOpinionPage({ ...data.LookInfo, - type: 1, + type: 1 }) - .then((res) => { + .then(res => { data.onViewTableInfo = res.data; data.total = res.total; }); }; //瀹℃牳閫夊彇鏁版嵁 - const handleSelectionChangeLook = (val) => { - data.lookSelrcts = val.map((item) => item.id); + const handleSelectionChangeLook = val => { + data.lookSelrcts = val.map(item => item.id); }; const onJudgeView = () => { data.onViewDialog = true; @@ -1103,9 +1101,9 @@ export default { onViewYushen, exantePerformanceEdite, // onEntrustingLetter, - ...toRefs(data), + ...toRefs(data) }; - }, + } }; </script> @@ -1187,7 +1185,7 @@ export default { font-weight: 500; color: #303133; text-align: center; - line-height:28px; + line-height: 28px; } } </style> 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 b6b91078d754ce8b521a3248e487c45f33970f44..d41b90402bb907945ef7458829adce8b9f92d99f 100644 --- a/WebSite/src/views/item-entry/trust-letter-management/index.vue +++ b/WebSite/src/views/item-entry/trust-letter-management/index.vue @@ -121,8 +121,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="downloadEntrustmentPdf(scope.row)" >涓嬭浇</el-button @@ -136,7 +136,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 @@ -312,7 +312,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) " > 缂栬緫 @@ -322,7 +322,7 @@ type="primary" icon="download" size="small" - @click="onDownLoad(scope.row)" + @click="onDownLoad(scope.row, 1)" >涓嬭浇</el-button > <el-button @@ -330,7 +330,7 @@ type="info" icon="View" size="small" - @click="onPreView(scope.row)" + @click="onPreView(scope.row, 1)" >棰勮</el-button > <el-button @@ -421,18 +421,6 @@ label="椤圭洰缂栧彿" align="center" ></el-table-column> - <el-table-column - class="positionStyle" - prop="budYear" - label="鐢虫姤骞翠唤" - align="center" - ></el-table-column> - <el-table-column - class="positionStyle" - prop="deptName" - label="涓氬姟澶勫" - align="center" - ></el-table-column> <el-table-column class="positionStyle" prop="projectName" @@ -441,14 +429,14 @@ ></el-table-column> <el-table-column class="positionStyle" - prop="entrustmentState" - label="椤圭洰鐘舵€�" + prop="conclusionStatus" + label="璇勫缁撴灉" align="center" ></el-table-column> <el-table-column class="positionStyle" - prop="appraisalResult" - label="璇勫缁撴灉" + prop="expertRemark" + label="鍙嶉鎰忚" align="center" ></el-table-column> <el-table-column label="鎿嶄綔" align="center " width="450px"> @@ -462,7 +450,7 @@ type="primary" icon="download" size="small" - @click="onDownLoad(scope.row)" + @click="onDownLoad(scope.row, 2)" >涓嬭浇</el-button > <el-button @@ -470,17 +458,9 @@ type="info" icon="View" size="small" - @click="onPreView(scope.row)" + @click="onPreView(scope.row, 2)" >棰勮</el-button > - <el-button - plain - type="info" - icon="View" - size="small" - @click="onView(scope.row)" - >鏌ョ湅璇勫鎰忚</el-button - > </template> </el-table-column> </el-table></el-tab-pane @@ -686,7 +666,11 @@ @close="closeWeituo" > <el-form ref="formRef" label-width="80px"> - <el-form :inline="true" class="demo-form-inline" :model="queryGenerateDelegateInfo"> + <el-form + :inline="true" + class="demo-form-inline" + :model="queryGenerateDelegateInfo" + > <el-form-item label="鐢虫姤骞翠唤锛�" prop="budYear"> <el-date-picker v-model="queryGenerateDelegateInfo.budYear" @@ -770,7 +754,7 @@ import trustLetterManagementFinance from '@/api/trust-letter-management-finance' import FinanceOffice from '@/api/financeOffice'; import { ElMessage } from 'element-plus'; import Moment from 'moment'; - +import operation from '@/api/review-management-operation'; use([]); export default { name: 'TrustLetterManagement', @@ -783,10 +767,10 @@ export default { budYear: '', entrustmentState: '', pageIndex: 1, - pageSize: 10, + pageSize: 10 }, queryGenerateDelegateInfo: { - budYear: 2023, + budYear: 2023 }, projectStates: [], onEntrustingLetterTableInfo: [], @@ -803,7 +787,7 @@ export default { onViewTableInfo: [], onViewAppraisalResultTableInfo: [], exantePerformanceTableInfo: { - tableInfo: [], + tableInfo: [] }, exantePerformanceSelects: [], tableId: [], @@ -811,7 +795,7 @@ export default { LookInfo: { pageIndex: 1, pageSize: 10, - parentId: '', + parentId: '' }, total: 1, tableObj: { @@ -822,29 +806,29 @@ export default { financialSupportRationality: '', controllabilityFinancingRisks: '', materialIntegrity: '', - other: '', + other: '' }, writeDialog: false, - rowId: '', + rowId: '' }); Moment, onMounted(() => { getEnstrustmentStateEnumList(); getEntrustmentPageDept(); }); - const changePage = (val) => { + const changePage = val => { data.queryInfo.pageIndex = val.page; data.queryInfo.pageSize = val.limit; 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; } @@ -852,8 +836,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 = '鏄�'); } @@ -867,45 +851,43 @@ 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.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 => { data.rowId = row.id; 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); }; @@ -915,13 +897,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(); @@ -930,13 +912,13 @@ export default { } else { ElMessage({ message: '鑷冲皯閫夋嫨涓€鏉℃暟鎹敓鎴愬鎵樺嚱', - type: 'warning', + type: 'warning' }); } }; //閫変腑濮旀墭鍑芥暟鎹� - 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,浣滀负鐢熸垚濮旀墭鍑界殑鍙傛暟 @@ -944,7 +926,7 @@ export default { const onJudgePreViewSure = () => { data.onJudgePreViewDialog = false; }; - const downloadEntrustmentPdf = async (row) => { + const downloadEntrustmentPdf = async row => { const res = await trustLetterManagementFinance.downloadEntrustmentPdf( row.id ); @@ -962,88 +944,90 @@ export default { data.onPassDialog = true; }; - const change = (val) => { + const change = val => { if (val == 0) { trustLetterManagement .getProjectListByEntrustmentId({ id: data.rowId }) - .then((res) => { + .then(res => { data.onPreAuditTableInfo = res.data; }); } else if (val == 1) { - FinanceOffice.getPreliminaryList({ id: data.rowId }).then((res) => { + FinanceOffice.getPreliminaryList({ id: data.rowId }).then(res => { data.PrequalificationTableInfo = res.data; }); } else { - console.log(222); + getEntrustmentFeedbackListByEntrustmentId(); } }; //椤圭洰娓呭崟-鍒嗛〉 - const changePageLook = (val) => { + const changePageLook = val => { data.LookInfo.pageIndex = val.page; data.LookInfo.pageSize = val.limit; trustLetterManagementFinance .getProjectAuditOpinionPage({ ...data.LookInfo, - type: 1, + type: 1 }) - .then((res) => { + .then(res => { data.onViewTableInfo = res.data; data.total = res.total; }); }; //椤圭洰娓呭崟-涓嬭浇 - const onDownLoad = async (row) => { - const res = await trustLetterManagementFinance.downloadProjectPdf(row.id); + const onDownLoad = async (row, v) => { + const res = await trustLetterManagementFinance.downloadProjectPdf( + v == 1 ? row.id : row.parentId + ); console.log(res); }; //椤圭洰娓呭崟-棰勮 - const onPreView = (row) => { + const onPreView = (row, v) => { router.push({ path: `/i/item-entry/exante-performance-evaluation-function-edit`, query: { - id: row.id, + id: v == 1 ? row.id : row.parentId, judgepreview: true, - preview: 1, - }, + preview: 1 + } }); }; //椤圭洰娓呭崟-鏌ョ湅棰勫鎰忚 - const onView = (row) => { + const onView = row => { data.LookInfo.parentId = row.id; exantePerformanceInquiry .getProjectAuditOpinionPage({ ...data.LookInfo, type: 1 }) - .then((res) => { + .then(res => { data.onViewTableInfo = res.data; data.total = res.total; }); data.onViewDialog = true; }; //棰勫缁撴灉-涓嬭浇 - const downloadYushen = async (row) => { + const downloadYushen = async row => { const res = await trustLetterManagementFinance.downloadProjectPdf( row.preliminaryid ); console.log(res); }; //棰勫缁撴灉-棰勮 - const onPreViewYushen = (row) => { - console.log(row) + const onPreViewYushen = row => { + console.log(row); router.push({ path: `/i/item-entry/exante-performance-evaluation-function-edit`, query: { id: row.parentId, judgepreview: true, - preview: 1, - }, + preview: 1 + } }); }; //棰勫缁撴灉-鏌ョ湅棰勫鎰忚 - const onViewYushen = (row) => { + const onViewYushen = row => { if (row.preliminaryId == null) { ElMessage.warning('鏆傛棤棰勫鎰忚'); } else { FinanceOffice.getPreliminaryById({ id: row.preliminaryId }).then( - (res) => { + res => { data.tableObj = res.data[0]; data.writeDialog = true; } @@ -1053,9 +1037,9 @@ export default { const onGenerateDelegateQuery = () => { trustLetterManagement .getPassProjectTypeList({ - budYear: data.queryGenerateDelegateInfo.budYear, + budYear: data.queryGenerateDelegateInfo.budYear }) - .then((res) => { + .then(res => { data.onEntrustingLetterTableInfo = res.data; }); }; @@ -1063,9 +1047,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; }); @@ -1074,11 +1058,19 @@ export default { //鍏抽棴濮旀墭鍑藉脊绐� const closeWeituo = () => { data.queryGenerateDelegateInfo = { - budYear: 2023, + budYear: 2023 }; }; + const getEntrustmentFeedbackListByEntrustmentId = () => { + operation + .getEntrustmentFeedbackListByEntrustmentId({ id: data.rowId }) + .then(res => { + data.onViewAppraisalResultTableInfo = res.data; + }); + }; return { Moment, + getEntrustmentFeedbackListByEntrustmentId, selectYear, onView, onViewYushen, @@ -1108,9 +1100,9 @@ export default { exantePerformanceEdite, onEntrustingLetter, closeWeituo, - ...toRefs(data), + ...toRefs(data) }; - }, + } }; </script> @@ -1185,13 +1177,13 @@ export default { ::v-deep(.el-card__body) { padding-bottom: 0px !important; } - .tab_table2 { + .tab_table2 { border: 1px solid #dcdfe6 !important; font-size: 14px; font-weight: 500; color: #303133; text-align: center; - line-height:28px; + line-height: 28px; } } </style> diff --git a/WebSite/src/views/item-entry/view-page/index.vue b/WebSite/src/views/item-entry/view-page/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..085d0597e229da639b8712ea1b63d2b1413f9f85 --- /dev/null +++ b/WebSite/src/views/item-entry/view-page/index.vue @@ -0,0 +1,1436 @@ +<template> + <div> + <el-dialog + top="220px" + title="" + v-model="onAcceptDialog" + width="75%" + destroy-on-close + @close="closeUpData" + > + <el-form ref="formRef" label-width="80px"> + <el-tabs v-model="activeName" @tab-change="changeTabs"> + <el-tab-pane label="椤圭洰棰勫" name="first" actived /> + <el-tab-pane label="閬撮€変笓瀹�" name="second" /> + <el-tab-pane label="鍒涘缓鏂规" name="third" /> + <el-tab-pane label="鏌ョ湅涓撳宸ヤ綔搴曠ǹ" name="four" /> + <el-tab-pane label="鎾板啓璇勫鎶ュ憡" name="five" /> + <el-tab-pane label="璇勫绛惧瓧鎵撳嵃" name="six" /> + </el-tabs> + + <div v-if="activeName == 'first'" class="filter-container"> + <el-table + :data="reviewTableInfo.tableInfo" + highlight-current-row + width="100%" + border + stripe + header-cell-class-name="headStyle" + @selection-change="selectionChangeReview" + > + <el-table-column + label="搴忓彿" + type="index" + width="50" + ></el-table-column> + <el-table-column + class="positionStyle" + prop="projectNumber" + label="椤圭洰缂栧彿" + align="center" + ></el-table-column> + <el-table-column + class="positionStyle" + prop="projectName" + label="椤圭洰鍚嶇О" + align="center" + ></el-table-column> + <el-table-column + class="positionStyle" + label="鎿嶄綔" + align="center" + style="width: 400px" + ><template #default="scope"> + <el-button + plain + type="primary" + size="small" + icon="Download" + @click="onLoad(scope.row)" + >涓嬭浇鐢虫姤涔�</el-button + > + <el-button + plain + type="primary" + size="small" + icon="view" + @click="onView(scope.row)" + >鏌ョ湅棰勫鎰忚</el-button + > + <el-button + plain + type="primary" + size="small" + icon="Download" + @click="downloadPreliminaryPdf(scope.row)" + >涓嬭浇棰勫鎰忚</el-button + > + </template> + </el-table-column> + </el-table> + <Pagination + style="padding-bottom: 10px" + :page="reviewTableInfo.pageIndex" + :limit="reviewTableInfo.pageSize" + :total="reviewDataCount" + @pagination="changeReviewPage" + /> + </div> + <div v-if="activeName == 'second'" class="filter-container"> + <el-table + :data="expertTableInfo.tableInfo" + highlight-current-row + width="100%" + border + stripe + header-cell-class-name="headStyle" + > + <!-- <el-table-column type="index" width="50"> {{ (page - 1) * pageSize + scope.$index + 1 }}</el-table-column> --> + <el-table-column + label="搴忓彿" + type="index" + width="50" + ></el-table-column> + <el-table-column + class="positionStyle" + prop="expertName" + label="涓撳濮撳悕" + align="center" + ></el-table-column> + <el-table-column + class="positionStyle" + prop="moblieNumber" + label="鎵嬫満鍙风爜" + align="center" + > + <template #default="scoped"> + <div> + {{ + scoped.row.expertTel + ? scoped.row.expertTel + : scoped.row.moblieNumber + }} + </div> + </template> + </el-table-column> + <el-table-column + class="positionStyle" + prop="budYear" + label="涓撳绫诲瀷" + align="center" + > + <template #default="scoped"> + <div> + {{ scoped.row.expertType == '1' ? '璐㈠姟涓撳' : '涓氬姟涓撳' }} + </div> + </template> + </el-table-column> + <el-table-column + class="positionStyle" + prop="workPlace" + label="宸ヤ綔鍗曚綅" + align="center" + ></el-table-column> + <el-table-column + class="positionStyle" + prop="ministries" + label="閮ㄩ棬" + align="center" + ></el-table-column> + <el-table-column + class="positionStyle" + prop="post" + label="鑱屽姟" + align="center" + ></el-table-column> + <el-table-column + class="positionStyle" + prop="projectName" + label="鏄惁鍙傚姞璇勫" + align="center" + > + <template #default="scoped"> + <div> + {{ scoped.row.expertReviewResult == false ? '鍚�' : '鏄�' }} + </div> + </template> + </el-table-column> + <el-table-column class="positionStyle" label="绾夸笅閫氱煡" + ><template #default="scoped"> + <el-radio-group + :disabled="true" + v-model="scoped.row.expertReviewResult" + @change="changeRadio(scoped.row)" + > + <el-radio :label="true">鍙傚姞</el-radio> + <el-radio :label="false">涓嶅弬鍔�</el-radio> + </el-radio-group> + </template> + </el-table-column> + <el-table-column + class="positionStyle" + prop="projectName" + label="鏄惁鏈夌绔�" + align="center" + > + <template #default="scoped"> + <div> + {{ + scoped.row.expertSign == null || expertSign == false + ? '鍚�' + : '鏄�' + }} + </div> + </template> + </el-table-column> + </el-table> + </div> + <div v-if="activeName == 'third'" class="filter-container"> + <el-table + :data="solutionTableInfo.tableInfo" + highlight-current-row + width="100%" + border + stripe + header-cell-class-name="headStyle" + > + <el-table-column + class="positionStyle" + prop="reviewDate" + label="璇勫鏃堕棿" + align="center" + > + <template #default="scoped"> + <div>{{ scoped.row.reviewDate.slice(0, 10) }}</div> + </template> + </el-table-column> + <el-table-column + class="positionStyle" + prop="reviewAddress" + label="璇勫鍦板潃" + align="center" + ></el-table-column> + <el-table-column + class="positionStyle" + label="鎿嶄綔" + align="center" + style="width: 550px" + ><template #default=""> + <el-button plain type="primary" size="small" icon="download" + >涓嬭浇鏂规</el-button + > + <el-button plain type="primary" size="small" icon="Tickets" + >鍔冲姟璐瑰彂鏀炬竻鍗�</el-button + > + <el-button plain type="primary" size="small" icon="Collection" + >璇勫浼氳绛惧埌琛�</el-button + > + </template> + </el-table-column> + </el-table> + </div> + <div v-if="activeName == 'four'" class="filter-container"> + <el-card + shadow="never" + style="margin-bottom: 20px" + class="charts-card" + > + <div> + <el-form :inline="true" class="demo-form-inline"> + <el-form-item> + <el-select v-model="solution" @change="selectTableInfo"> + <el-option + v-for="item in solutionTableInfo.tableInfo" + :key="item.id" + :label="item.reviewAddress" + :value="item.id" + ></el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-button plain type="primary" icon="download" size="small" + >涓嬭浇涓撳鎵嬬ǹ鏍蜂緥</el-button + > + </el-form-item> + </el-form> + </div> + </el-card> + <el-table + :data="expertsWriteTableInfo.tableInfo" + highlight-current-row + width="100%" + border + stripe + class="tableClass" + header-cell-class-name="headStyle" + > + <el-table-column type="expand"> + <template #default="props"> + <div m="4"> + <el-table :data="props.row.entrustmentProjectOutList"> + <el-table-column + label="椤圭洰缂栧彿" + prop="projectNumber" + align="center" + /> + <el-table-column + label="椤圭洰鍚嶇О" + prop="projectName" + align="center" + /> + <el-table-column label="鎿嶄綔" prop="city" align="center"> + <template #default="sco"> + <el-button + plain + type="primary" + size="small" + @click="CheckManuscript(props.row, sco.row)" + >鏌ョ湅搴曠ǹ</el-button + > + <el-button plain type="primary" size="small" + >涓嬭浇搴曠ǹ</el-button + > + </template> + </el-table-column> + </el-table> + </div> + </template> + </el-table-column> + <el-table-column + class="positionStyle" + prop="expertName" + label="涓撳濮撳悕" + align="center" + ></el-table-column> + <el-table-column + class="positionStyle" + prop="projectName" + label="涓撳搴曠ǹ杩涘害" + align="center" + > + <template #default="scoped"> + <div> + {{ + scoped.row.manuscriptCompletedCount + + '/' + + scoped.row.manuscriptCount + }} + </div> + </template> + </el-table-column> + <el-table-column + class="positionStyle" + prop="expertsName" + label="鏄惁鍖呭惈闄勪欢" + align="center" + > + <template #default="scoped"> + <div> + {{ scoped.row.isHavingFile == false ? '鏃�' : '鏈�' }} + </div> + </template> + </el-table-column> + <el-table-column + class="positionStyle" + label="鎿嶄綔" + align="center" + width="400" + ><template #default=""> + <el-button plain type="primary" icon="download" size="small" + >涓嬭浇宸插畬鎴愬簳绋�</el-button + > + </template> + </el-table-column> + </el-table> + </div> + <div v-if="activeName == 'five'" class="filter-container"> + <el-form :inline="true" class="demo-form-inline"> + <el-form-item> + <el-button plain type="primary" icon="Download" size="small" + >鎵归噺涓嬭浇鍙嶉鎰忚</el-button + > + </el-form-item> + </el-form> + <el-table + :data="reportTableInfo.tableInfo" + highlight-current-row + width="100%" + border + stripe + @selection-change="BatchFeedbackChange" + header-cell-class-name="headStyle" + > + <el-table-column type="selection"> </el-table-column> + <!-- <el-table-column type="index" width="50"> {{ (page - 1) * pageSize + scope.$index + 1 }}</el-table-column> --> + <el-table-column + label="搴忓彿" + type="index" + width="50" + ></el-table-column> + <el-table-column + class="positionStyle" + prop="projectNumber" + label="椤圭洰缂栧彿" + align="center" + ></el-table-column> + <el-table-column + class="positionStyle" + prop="projectName" + label="椤圭洰鍚嶇О" + align="center" + ></el-table-column> + <el-table-column + class="positionStyle" + prop="expertRemark" + label="鍙嶉鎰忚" + align="center" + ></el-table-column> + <el-table-column + class="positionStyle" + prop="conclusionStatus" + label="璇勫缁撹" + align="center" + ></el-table-column> + <el-table-column class="positionStyle" label="鎿嶄綔" align="center" + ><template #default="scope"> + <el-button + plain + size="small" + @click="onRecord(scope.row)" + v-if="scope.row.feedbackStatus == 1" + >鏌ョ湅</el-button + > + + <el-button + v-if=" + scope.row.feedbackStatus == 1 || + scope.row.feedbackStatus == 0 + " + plain + type="primary" + size="small" + @click="onReco(scope.row)" + >涓嬭浇</el-button + > + </template> + </el-table-column> + </el-table> + <Pagination + style="padding-bottom: 10px" + :page="reportTableInfo.pageIndex" + :limit="reportTableInfo.pageSize" + :total="reportTableInfo.total" + @pagination="changePage" + /> + </div> + <div v-if="activeName == 'six'" class="filter-container"> + <el-form :inline="true" class="demo-form-inline"> + <el-form-item> + <el-form-item label="鏂规锛�"> + <el-select + v-model="selection" + placeholder="璇烽€夋嫨" + style="width: 100%" + > + <el-option + v-for="(item, index) in selectList" + :key="index" + :label="item.reviewAddress" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + </el-form-item> + </el-form> + <el-form :inline="true" class="demo-form-inline"> + <el-form-item> + <el-form-item label="鍚堣搴曠ǹ鏂瑰紡锛堜粎鏀寔Docx鏍煎紡锛夛細"> + </el-form-item> + </el-form-item> + </el-form> + <el-form :inline="true" class="demo-form-inline"> + <el-form-item> + <el-button plain type="primary" icon="Download" size="small" + >涓嬭浇鍚堣搴曠ǹ</el-button + > + <el-button plain type="primary" icon="Download" size="small" + >涓撳搴曠ǹ涓€閿笅杞�</el-button + > + <el-button + plain + type="primary" + icon="Download" + size="small" + @click="downloadServiceFeePdf" + >鍔冲姟璐瑰彂鏀炬竻鍗�</el-button + > + </el-form-item> + </el-form> + <el-table + :data="printReviewTableInfo.tableInfo" + highlight-current-row + width="100%" + border + stripe + header-cell-class-name="headStyle" + > + <!-- <el-table-column type="index" width="50"> {{ (page - 1) * pageSize + scope.$index + 1 }}</el-table-column> --> + <el-table-column + label="搴忓彿" + type="index" + width="50" + ></el-table-column> + <el-table-column + class="positionStyle" + prop="expertName" + label="濮撳悕" + align="center" + > + <template #default="scope"> + <el-input v-model="scope.row.expertName"></el-input> + </template> + </el-table-column> + <el-table-column + class="positionStyle" + prop="workPlace" + label="鍗曚綅" + align="center" + > + <template #default="scope"> + <el-input v-model="scope.row.workPlace"></el-input> + </template> + </el-table-column> + <el-table-column + class="positionStyle" + prop="post,title" + label="鑱屽姟/鑱岀О" + align="center" + > + <template #default="scope"> + <el-input v-model="scope.row.title"></el-input> + </template> + </el-table-column> + <el-table-column + class="positionStyle" + prop="idcard" + label="韬唤璇佸彿鐮�" + align="center" + > + <template #default="scope"> + <el-input v-model="scope.row.idcard"></el-input> + </template> + </el-table-column> + <el-table-column + class="positionStyle" + prop="bankAccount" + label="閾惰鍗″彿" + align="center" + > + <template #default="scope"> + <el-input v-model="scope.row.bankAccount"></el-input> </template + ></el-table-column> + <el-table-column + class="positionStyle" + prop="bankName" + label="寮€鎴烽摱琛屽悕绉�" + align="center" + > + <template #default="scope"> + <el-input v-model="scope.row.bankName"></el-input> </template + ></el-table-column> + <el-table-column + class="positionStyle" + prop="expertTel" + label="鑱旂郴鏂瑰紡" + align="center" + > + <template #default="scope"> + <el-input v-model="scope.row.expertTel"></el-input> </template + ></el-table-column> + <el-table-column + class="positionStyle" + prop="preTaxAmount" + label="绋庡墠閲戦" + align="center" + > + <template #default="scope"> + <el-input + v-model="scope.row.preTaxAmount" + ></el-input> </template + ></el-table-column> + <el-table-column + class="positionStyle" + prop="afterTaxAmount" + label="绋庡悗閲戦" + align="center" + > + <template #default="scope"> + <el-input + v-model="scope.row.afterTaxAmount" + ></el-input> </template + ></el-table-column> + <el-table-column + class="positionStyle" + prop="experttype" + label="涓婄Щ" + align="center" + > + <template #default="scope"> + <el-input v-model="scope.row.experttype"></el-input> </template + ></el-table-column> + <el-table-column + class="positionStyle" + prop="experttype" + label="涓嬬Щ" + align="center" + > + <template #default="scope"> + <el-input v-model="scope.row.experttype"></el-input> </template + ></el-table-column> + </el-table> + </div> + </el-form> + <template #footer> + <span class="dialog-footer"> + <el-button @click="onAcceptDialog = false">鍙� 娑�</el-button> + </span> + </template> + </el-dialog> + <el-dialog + title="鏌ョ湅涓撳搴曠ǹ" + top="10px" + v-model="OptionRow" + width="60%" + destroy-on-close + > + <table border="1" class="tab_table2" cellspacing="0"> + <tr> + <td colspan="6">璇勪及鍐呭銆佽鐐广€佹潈閲嶅強鎵撳垎</td> + </tr> + <tr> + <td>涓€绾ф寚鏍�</td> + <td>浜岀骇鎸囨爣</td> + <td>璇勪及瑕佺偣</td> + <td>鏉冮噸</td> + <td>璇勪及寰楀垎</td> + <td>澶囨敞璇存槑</td> + </tr> + <tr> + <td rowspan="4">椤圭洰绔嬮」蹇呰鎬�</td> + <td>渚濇嵁鍏呭垎鎬�</td> + <td> + 椤圭洰鍐呭涓庡浗瀹躲€佹湰甯傚畯瑙傛斂绛栥€佽涓氭斂绛栫浉绗︼紝涓庢湰閮ㄩ棬鑱岃兘銆佺浉鍏充笓椤硅鍒掋€佸綋骞撮噸鐐瑰伐浣滅浉绗� + </td> + <td>10</td> + <td> + {{ tableArr.adequacyBasedScore }} + </td> + <td rowspan="3"> + {{ tableArr.projectApprovalRemark }} + </td> + </tr> + <tr> + <td>闇€姹傝揩鍒囨€�</td> + <td>椤圭洰鏈夌‘瀹氱殑鏈嶅姟瀵硅薄鎴栧彈鐩婂璞★紝鐜板疄闇€姹傝揩鍒囷紝娌℃湁鍙浛浠f€�</td> + <td>10</td> + <td> + {{ tableArr.demandUrgencyScore }} + </td> + </tr> + <tr> + <td>璐㈡斂鎶曞叆鐩稿叧鎬�</td> + <td>椤圭洰鍏锋湁鍏叡鎬э紝灞炰簬鍏叡璐㈡斂鏀寔鐨勮寖鍥�</td> + <td>10</td> + <td> + {{ tableArr.financialInvestmentCrrelationScore }} + </td> + </tr> + <tr> + <td colspan="2">灏忚</td> + + <td>30</td> + <td>{{ total1 }}</td> + <td></td> + </tr> + <tr> + <td rowspan="4">鎶曞叆缁忔祹鎬�</td> + <td>鎶曞叆璧勯噾璁鸿瘉鍏呭垎鎬�</td> + <td>瀵规姇鍏ラ噺缁忚繃浜嗗繀瑕佺殑瀹℃牳杩囩▼</td> + <td>6</td> + <td> + {{ tableArr.demonstrationInvestmentFundsScore }} + </td> + <td rowspan="3"> + {{ tableArr.investmentEconomyRemark }} + </td> + </tr> + <tr> + <td>棰勭畻缂栧埗绉戝鍚堢悊鎬�</td> + <td>椤圭洰棰勭畻涓庨」鐩唴瀹圭浉鍖归厤</td> + <td>7</td> + <td> + {{ tableArr.budgetingScienceScore }} + </td> + </tr> + <tr> + <td>閲嶅鎶曞叆椋庨櫓</td> + <td> + 娌℃湁绫讳技椤圭洰寰楀埌璐㈡斂璧勯噾鏀寔锛岄渶姹傝€咃紙鍙楃泭瀵硅薄锛夌殑闇€姹傛病鏈夊叾浠栧悓绫婚」鐩噸澶嶆姇鍏� + </td> + <td>7</td> + <td> + {{ tableArr.riskRepeatedInvestmentScore }} + </td> + </tr> + <tr> + <td colspan="2">灏忚</td> + + <td>20</td> + <td>{{ total2 }}</td> + <td></td> + </tr> + <tr> + <td rowspan="4">缁╂晥鐩爣鍚堢悊鎬�</td> + <td>缁╂晥鐩爣鏄庣‘鎬�</td> + <td>缁╂晥鐩爣鎸囧悜鏄庣‘锛屼笖涓庨儴闂ㄩ暱鏈熻鍒掔洰鏍囥€佸勾搴﹀伐浣滅洰鏍囦竴鑷�</td> + <td>7</td> + <td> + {{ tableArr.clearPerformanceGoalScore }} + </td> + <td rowspan="3"> + {{ tableArr.reasonablePerformanceGoalRemark }} + </td> + </tr> + <tr> + <td>缁╂晥鐩爣鐩稿叧鎬�</td> + <td> + 缁╂晥鐩爣涓庨」鐩璁¤В鍐崇殑闂鍖归厤锛屼笌椤圭洰鍐呭銆侀」鐩粡璐规敮鍑鸿寖鍥村尮閰� + </td> + <td>7</td> + <td> + {{ tableArr.relatedPerformanceGoalScore }} + </td> + </tr> + <tr> + <td>缁╂晥鐩爣鍙绋嬪害</td> + <td> + 缁╂晥鐩爣鍦ㄤ竴瀹氭湡闄愬唴鍏锋湁杈冨己鐨勫彲瀹炵幇鎬э紝鍏锋湁涓€瀹氱殑鍓嶇灮鎬у拰鎸戞垬鎬� + </td> + <td>6</td> + <td> + {{ tableArr.feasibilityPerformanceGoalScore }} + </td> + </tr> + <tr> + <td colspan="2">灏忚</td> + + <td>20</td> + <td>{{ total3 }}</td> + <td></td> + </tr> + <tr> + <td rowspan="4">瀹炴柦鏂规鍙鎬�</td> + <td>鍓嶆湡绛瑰瀹屽鎬�</td> + <td>椤圭洰缁忚繃蹇呰鐨勮皟鐮斻€侀闄╄瘎浼扮瓑鍓嶆湡宸ヤ綔</td> + <td>6</td> + <td> + {{ tableArr.completenessPreliminaryPreparationScore }} + </td> + <td rowspan="3"> + {{ tableArr.implementationPlanFeasibleRemark }} + </td> + </tr> + <tr> + <td>瀹炴柦璁″垝鍚堢悊鎬�</td> + <td> + 椤圭洰瀹炴柦璁″垝瀹屾暣銆佸彲琛屻€佸悎鐞嗭紝鍏峰鏄庣‘鐨勯」鐩寖鍥淬€侀」鐩唴瀹广€侀」鐩粍缁囥€佽繘搴﹀畨鎺掞紝椤圭洰鐩稿叧鐨勫熀纭€璁炬柦銆佽澶囨潯浠惰兘澶熷緱浠ユ湁鏁堜繚闅� + </td> + <td>7</td> + <td> + {{ tableArr.reasonableImplementationPlanScore }} + </td> + </tr> + <tr> + <td>椤圭洰绠$悊鏈哄埗鍋ュ叏鎬�</td> + <td> + 椤圭洰鍏峰椤圭洰璐ㄩ噺鏍囧噯銆佹斂搴滈噰璐涓虹害鏉熸満鍒讹紙瀵逛簬娑夊強鏀垮簻閲囪喘琛屼负鐨勯」鐩級銆侀」鐩墽琛岃繃绋嬬鎺ф帾鏂芥垨鏈哄埗銆侀」鐩缓鍚庣淮鎶ゆ満鍒讹紙瀵逛簬淇℃伅鍖栧缓璁剧被椤圭洰锛夈€佽祫鏂欏綊妗f満鍒讹紝鐩稿叧鎺柦銆佹満鍒惰兘澶熶繚璇侀」鐩『鍒╁疄鏂� + </td> + <td>7</td> + <td> + {{ tableArr.projectManagementMechanismScore }} + </td> + </tr> + <tr> + <td colspan="2">灏忚</td> + + <td>20</td> + <td>{{ total4 }}</td> + <td></td> + </tr> + <tr> + <td rowspan="3">绛硅祫鍚堣鎬�</td> + <td>璧勯噾鏀寔鍚堢悊鎬�</td> + <td> + 娌℃湁涓庡叾瀹冮」鐩殑鏀寔鑼冨洿鍜屽璞″瓨鍦ㄤ氦鍙夐噸鍙狅紱璧勯噾鏀寔鏂瑰紡绉戝鍚堢悊銆� + </td> + <td>10</td> + <td> + {{ tableArr.reasonableFinancialSupportScore }} + </td> + <td> + {{ tableArr.fundraisingComplianceRemark }} + </td> + </tr> + <tr> + <td>绛硅祫椋庨櫓鍙帶鎬э紙鑻ュ惈闈炶储鏀挎€ц祫閲戯級</td> + <td> + 瀵圭璧勯闄╋紙鍚嚜绛圭瓑鍏跺畠娓犻亾鏉ユ簮璧勯噾锛夋湁鍏ㄩ潰鐨勮璇嗭紱閽堝棰勬湡椋庨櫓璁惧畾搴斿鎺柦锛屼笖搴斿鎺柦鍙銆佹湁鏁堛€� + </td> + <td>0</td> + <td> + {{ tableArr.controllabilityFinancingRisksScore }} + </td> + <td> + {{ tableArr.controllabilityFinancingRisksRemark }} + </td> + </tr> + <tr> + <td colspan="2">灏忚</td> + + <td>10</td> + <td>{{ total5 }}</td> + <td></td> + </tr> + <tr> + <td colspan="3">鍚堣</td> + + <td>100</td> + <td>{{ total6 }}</td> + <td></td> + </tr> + <tr> + <td rowspan="2">璇勪及缁撹<br />(璇峰嬀閫�)</td> + <td>寤鸿浜堜互鏀寔</td> + <td colspan="2">寤鸿璋冩暣瀹屽杽鍚庝簣浠ユ敮鎸�</td> + <td>涓嶄簣鏀寔</td> + <td>澶囨敞璇存槑</td> + </tr> + <tr> + <td> + <el-radio-group v-model="tableArr.conclusion"> + <el-radio size="large" label="1" disabled>{{}}</el-radio> + </el-radio-group> + </td> + <td colspan="2"> + <el-radio-group v-model="tableArr.conclusion"> + <el-radio size="large" label="2" disabled>{{}}</el-radio> + </el-radio-group> + </td> + <td> + <el-radio-group v-model="tableArr.conclusion"> + <el-radio size="large" label="3" disabled>{{}}</el-radio> + </el-radio-group> + </td> + <td> + {{ tableArr.conclusionRemark }} + </td> + </tr> + <tr> + <td>瀛樺湪鐨勯棶棰�<br />鍙婄浉鍏冲缓璁�</td> + <td colspan="5"> + {{ tableArr.problemsPropose }} + </td> + </tr> + </table> + + <template #footer> + <span class="dialog-footer"> + <el-button @click="OptionRow = false">鍙� 娑�</el-button> + <el-button type="primary" @click="OptionRow = false">纭� 瀹�</el-button> + </span> + </template> + </el-dialog> + <el-dialog + top="220px" + v-model="addFeedbackDialog" + title="娣诲姞鍙嶉鎰忚" + width="30%" + destroy-on-close + > + <el-form> + <el-form-item label="椤圭洰鍚嶇О锛�"> + <el-select + v-model="ProjectFeedback" + @change="selectCV" + :disabled="disabled1" + > + <el-option + v-for="item in Feedback" + :key="item.id" + :label="item.projectName" + :value="{ + value: item.id, + label: item.projectName, + key: item.projectNumber + }" + ></el-option> + </el-select> + </el-form-item> + <el-form-item label="涓撳鎵撳垎鎯呭喌锛�"> + <table + class="tab_table3" + cellspacing="0" + style="border: 1px solid #d5d5d5" + > + <tr> + <td v-for="(item, index) in markInfo" :key="index"> + {{ item.expertName }} + </td> + <td v-if="markInfo.length != 0">骞冲潎寰楀垎</td> + </tr> + <tr> + <td v-for="(item, index) in markInfo" :key="index"> + {{ item.totalScore }} + </td> + <td v-if="markInfo.length != 0">{{ avgScore }}</td> + </tr> + </table> + </el-form-item> + <el-form-item label="涓撳鎰忚锛�"> + <el-input + :disabled="disabled" + v-model="textarea" + :rows="4" + type="textarea" + placeholder="璇峰~鍐�" + /> + </el-form-item> + <el-form-item label="璇勫缁撹锛�"> + <el-radio-group v-model="radio" :disabled="disabled"> + <el-radio label="寤鸿浜堜互鏀寔" size="small">寤鸿浜堜互鏀寔</el-radio> + <el-radio label="寤鸿璋冩暣瀹屽杽鍚庝簣浠ユ敮鎸�" size="small" + >寤鸿璋冩暣瀹屽杽鍚庝簣浠ユ敮鎸�</el-radio + > + <el-radio label="涓嶄簣鏀寔" size="small">涓嶄簣鏀寔</el-radio> + </el-radio-group> + </el-form-item> + </el-form> + <template #footer> + <span class="dialog-footer"> + <el-button + type="primary" + @click="saveEntrustmentFeedback" + v-if="!disabled" + >淇濆瓨鎬ラ渶濉啓</el-button + > + <el-button type="primary" @click="onSaveAndClose" v-if="!disabled" + >淇濆瓨骞跺叧闂�</el-button + > + <el-button @click="addFeedbackDialog = false">鍏� 闂�</el-button> + </span> + </template> + </el-dialog> + </div> +</template> +<script> +import { reactive, toRefs, computed, watch, onMounted } from 'vue'; +import { ElMessage } from 'element-plus'; +import operation from '@/api/review-management-operation'; +export default { + name: 'ViewPage', + props: { + state: { type: Boolean }, + planId: String + }, + + setup(props, cxt) { + const data = reactive({ + planId: '', + disabled1: false, + disabled: false, + DownloadCopy: [], + onNew: false, + OptionRow: false, + tableArr: { + adequacyBasedScore: 0, + budgetingScienceScore: 0, + clearPerformanceGoalScore: 0, + completenessPreliminaryPreparationScore: 0, + conclusion: '', + conclusionRemark: '', + controllabilityFinancingRisksScore: 0, + demandUrgencyScore: 0, + demonstrationInvestmentFundsScore: 0, + entrustmentId: '', + expertId: '', + expertName: '', + expertTel: '', + feasibilityPerformanceGoalScore: 0, + financialInvestmentCrrelationScore: 0, + fundraisingComplianceRemark: '', + id: '', + implementationPlanFeasibleRemark: '', + investmentEconomyRemark: '', + parentId: '', + planId: '', + problemsPropose: '', + projectApprovalRemark: '', + projectManagementMechanismScore: 0, + reasonableFinancialSupportScore: 0, + reasonableImplementationPlanScore: 0, + reasonablePerformanceGoalRemark: '', + relatedId: '', + relatedPerformanceGoalScore: 0, + riskRepeatedInvestmentScore: 0, + totalScore: 0 + }, + planIds: '', + radio: '', + textarea: '', + projectName: '', + projectId: '', + projectNumber: '', + ProjectFeedback: '', + Feedback: [], + solution: '', + valueOption: '', + valueSelect: '鍏ㄥぉ', + queryInfo3: '', + valueYear1: '', + queryInfo1: '', + valueYear2: '', + queryInfo2: '', + addExpertShow: false, + expertList: [], + addexpert: { + tableInfo: [], + pageIndex: 1, + pageSize: 10, + total: 0 + }, + formRow: { + expertname: '', + recommendedoffice: '', + duty: '', + workunit: '', + department: '' + }, + form: { + signTime: '', + receiveTime: '' + }, + projectStates: [], + markInfo: [], + activeName: 'second', + addFeedbackDialog: false, + onAcceptDialog: false, + addExpertDialog: false, + queryInfo: { + budYear: '', + entrustmentState: '', + deptName: '', + pageIndex: 1, + pageSize: 10 + }, + dataCount: 2, + reviewTableInfo: { + id: '', //濮旀墭鍑絠d + projectNum: null, + tableInfo: [], + pageIndex: 1, + pageSize: 10 + }, + selectionChangeReviewId: [], //瀛樻斁椤圭洰棰勫閫夋嫨鐨勬暟鎹甶d + expertTableInfo: { + tableInfo: [] + }, + solutionTableInfo: { + tableInfo: [] + }, + expertsWriteTableInfo: { + tableInfo: [] + }, + reportTableInfo: { + tableInfo: [], + pageIndex: 1, + pageSize: 10 + }, + printReviewTableInfo: { + tableInfo: [], + pageIndex: 1, + pageSize: 10 + }, + SixTotal: 1, + reviewDataCount: 4, + exantePerformanceTableInfo: { + tableInfo: [] + }, + exantePerformanceSelects: [], + officeCode: '', + officeName: '', + selection: '', + selectList: [], + avgScore: '', + entrustmentId: '', + formBlue: { + businessExpertCount: '', + financeExpertCount: '' + }, + proId: [], + plan: [] + }); + + const uplChange = row => { + data.expertTel = row.expertTel; + console.log(row); + data.onNew = true; + getEntrustmentExpertManuscriptFileList(); + }; + const getEntrustmentExpertManuscriptFileList = () => { + operation + .getEntrustmentExpertManuscriptFileList({ + expertId: data.expertTel, + planId: data.planIds + }) + .then(res => { + data.DownloadCopy = res.data; + }); + }; + const total1 = computed(() => { + return ( + Number(data.tableArr.adequacyBasedScore) + + Number(data.tableArr.demandUrgencyScore) + + Number(data.tableArr.financialInvestmentCrrelationScore) + ); + }); + const total2 = computed(() => { + return ( + Number(data.tableArr.demonstrationInvestmentFundsScore) + + Number(data.tableArr.budgetingScienceScore) + + Number(data.tableArr.riskRepeatedInvestmentScore) + ); + }); + const total3 = computed(() => { + return ( + Number(data.tableArr.clearPerformanceGoalScore) + + Number(data.tableArr.relatedPerformanceGoalScore) + + Number(data.tableArr.feasibilityPerformanceGoalScore) + ); + }); + const total4 = computed(() => { + return ( + Number(data.tableArr.completenessPreliminaryPreparationScore) + + Number(data.tableArr.reasonableImplementationPlanScore) + + Number(data.tableArr.projectManagementMechanismScore) + ); + }); + const total5 = computed(() => { + return ( + Number(data.tableArr.reasonableFinancialSupportScore) + + Number(data.tableArr.controllabilityFinancingRisksScore) + ); + }); + const total6 = computed(() => { + return ( + total1.value + total2.value + total3.value + total4.value + total5.value + ); + }); + + watch( + () => props.state, + () => { + data.onAcceptDialog = props.state; + }, + { immediate: true } + ); + // watch( + // () => data.activeName, + // () => { + // if (data.activeName == 'first') { + // console.log('111'); + // getPreliminaryList(); + // } + // if (data.activeName == 'six') { + // console.log('666'); + // planReviewList(); + // getExpertInfoList(); + // } + // } + // ); + watch( + () => data.printReviewTableInfo.tableInfo, + () => { + for (let i = 0; i < data.printReviewTableInfo.tableInfo.length; i++) { + data.printReviewTableInfo.tableInfo[i].title = + data.printReviewTableInfo.tableInfo[i].post + + data.printReviewTableInfo.tableInfo[i].title; + } + } + ); + onMounted(() => { + data.planId = props.planId; + getExpertInfoPageById(); + }); + //濉啓搴曠ǹ + const CheckManuscript = (row, child) => { + data.OptionRow = true; + operation + .getEntrustmentExpertManuscript({ + entrustmentId: data.reviewTableInfo.id, + expertId: row.expertId, + parentId: child.id, + expertTel: row.expertTel, + expertName: row.expertName, + planId: data.planIds + }) + .then(res => { + data.tableArr = res.data[0]; + }); + }; + //鍒囨崲鍒嗛〉 + const changePage = val => { + data.reportTableInfo.pageIndex = val.page; + data.reportTableInfo.pageSize = val.limit; + }; + //椤圭洰棰勫 鍒囨崲鍒嗛〉 + const changeReviewPage = val => { + (data.reviewTableInfo.pageIndex = val.page), + (data.reviewTableInfo.pageSize = val.limit), + getPreliminaryList(); + }; + const getPreliminaryList = () => { + operation + .getPreliminaryList({ + id: data.planId, + pageIndex: data.reviewTableInfo.pageIndex, + pageSize: data.reviewTableInfo.pageSize, + projectNumber: data.reviewTableInfo.projectNum + }) + .then(res => { + data.reviewTableInfo.tableInfo = res.data; + data.reviewDataCount = res.total; + }); + }; + //鍒囨崲Tabs鏍囩 + const changeTabs = v => { + if (v == 'third' || v == 'four') { + getPlanReviewList(); + } else if (v == 'five') { + getEntrustmentFeedbackListByEntrustmentId(); + } else if (v == 'first') { + getPreliminaryList(); + } else if (v == 'second') { + getExpertInfoPageById(); + } else if (v == 'six') { + getExpertInfoList(); + planReviewList(); + } + }; + //鎾板啓璇勫鎶ュ憡鍒楄〃 + const getEntrustmentFeedbackListByEntrustmentId = () => { + operation + .getEntrustmentFeedbackListByEntrustmentId({ + id: data.planId + }) + .then(res => { + data.reportTableInfo.tableInfo = res.data; + + data.reportTableInfo.total = res.total; + }); + }; + const getPlanReviewList = () => { + operation.getPlanReviewList({ id: data.planId }).then(res => { + data.solutionTableInfo.tableInfo = res.data; + data.solution = data.solutionTableInfo.tableInfo[0].reviewAddress; + data.planIds = data.solutionTableInfo.tableInfo[0].id; + getEntrustmentExpertManuscriptList(); + }); + }; + //閫夋嫨椤圭洰棰勫鐨勬暟鎹� + const selectionChangeReview = val => { + data.selectionChangeReviewId = val.map(item => item.id); + }; + const addExpert = () => { + data.addExpertDialog = true; + getDbExpertInfoPage(); + }; + //娣诲姞涓撳鍒楄〃 + const getDbExpertInfoPage = () => { + operation + .getDbExpertInfoPage({ + expertName: data.formRow.expertname, + ministries: data.formRow.department, + pageNo: data.addexpert.pageIndex, + pageSize: data.addexpert.pageSize, + post: data.formRow.duty, + recommendPlace: data.formRow.recommendedoffice, + workPlace: data.formRow.workunit + }) + .then(res => { + data.addexpert.tableInfo = res.data; + data.addexpert.total = res.total; + }); + }; + + //濮旀墭鍑戒笓瀹跺垪琛� + const getExpertInfoPageById = () => { + operation + .getExpertInfoPageById({ + id: data.planId, + pageIndex: 1, + pageSize: 10 + }) + .then(res => { + data.expertTableInfo.tableInfo = res.data; + }); + }; + + //鑾峰彇濮旀墭鍑藉垪琛� + const getClaimEnutrustmentList = () => { + operation.getClaimEnutrustmentList(data.queryInfo).then(res => { + data.exantePerformanceTableInfo.tableInfo = res.data; + data.dataCount = res.total; + }); + }; + //鏂规涓嬫媺妗� + const planReviewList = () => { + operation.getPlanReviewList({ id: data.planId }).then(res => { + data.selectList = [res.data[0]]; + }); + }; + //璇勫绛惧瓧鎵撳嵃琛ㄦ牸 + const getExpertInfoList = () => { + operation + .getExpertInfoList({ + id: data.planId, + pageIndex: data.printReviewTableInfo.pageIndex, + pageSize: data.printReviewTableInfo.pageSize + }) + .then(res => { + data.printReviewTableInfo.tableInfo = res.data; + data.SixTotal = res.total; + }); + }; + //璇勫绛惧瓧鍔冲姟璐逛笅杞� + const downloadServiceFeePdf = () => { + operation.downloadServiceFeePdf({ + expertInfoPDFListCmdList: data.printReviewTableInfo.tableInfo + }); + }; + //鑾峰彇涓撳搴曠ǹ鍒楄〃 + const selectTableInfo = v => { + data.planIds = v; + getEntrustmentExpertManuscriptList(); + }; + const getEntrustmentExpertManuscriptList = () => { + operation + .getEntrustmentExpertManuscriptList({ + entrustmentId: data.planId, + planId: data.planIds + }) + .then(res => { + data.expertsWriteTableInfo.tableInfo = res.data; + }); + }; + const getEntrustmentExpertScoreByProjectId = v => { + operation + .getEntrustmentExpertScoreByProjectId({ parentId: v }) + .then(res => { + data.markInfo = res.data[0].expertManuscriptOuts; + data.avgScore = res.data[0].avgScore; + }); + }; + + const BatchFeedbackChange = val => { + data.parentId = val.map(item => { + return item.id; + }); + }; + //涓嬭浇鐢虫姤涔� + const onLoad = () => {}; + //鏌ョ湅鐢虫姤涔� + const onLook = () => {}; + //鏌ョ湅瀹℃牳鎰忚 + const onView = () => {}; + //涓嬭浇棰勫PDF 纭浼犲弬id鏄惁姝g‘ + const downloadPreliminaryPdf = row => { + if (row.preliminaryId != null) { + operation.downloadPreliminaryPdf({ id: row.preliminaryId }); + } else { + ElMessage.warning('鏆傛椂娌℃湁棰勫鎰忚'); + } + }; + // eslint-disable-next-line no-unused-vars + const UploadRequestOptions = file => {}; + // eslint-disable-next-line no-unused-vars + const UploadRequest = file => {}; + const rowId = row => { + data.expertTel = row.expertTel; + }; + //鏌ョ湅 + const onRecord = row => { + data.disabled = true; + data.disabled1 = true; + data.addFeedbackDialog = true; + getEntrustmentExpertScoreByProjectId(row.id); + data.ProjectFeedback = row.projectName; + data.textarea = row.expertRemark; + data.radio = row.conclusionStatus; + }; + const closeUpData = () => { + cxt.emit('changData', false); + }; + + return { + CheckManuscript, + closeUpData, + BatchFeedbackChange, + getEntrustmentExpertScoreByProjectId, + onRecord, + rowId, + UploadRequestOptions, + UploadRequest, + getEntrustmentExpertManuscriptList, + getDbExpertInfoPage, + selectTableInfo, + getEntrustmentFeedbackListByEntrustmentId, + planReviewList, + changeTabs, + getExpertInfoPageById, + getClaimEnutrustmentList, + changeReviewPage, + getPreliminaryList, + uplChange, + changePage, + addExpert, + selectionChangeReview, + getPlanReviewList, + getExpertInfoList, + getEntrustmentExpertManuscriptFileList, + downloadServiceFeePdf, + onLoad, + onLook, + onView, + total5, + total6, + total1, + total4, + total3, + total2, + downloadPreliminaryPdf, + ...toRefs(data) + }; + } +}; +</script>