From 13900c0be3a45f7e53fef8f7f53c1e67dc3c6c52 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期四, 26 十二月 2024 14:33:07 +0800
Subject: [PATCH] 完成不符合项分布迁移
---
src/components/do/a7-distribution-of-nonconforming/formDia.vue | 233 +++++++++++++++++++++++++
src/components/view/a7-distribution-of-nonconforming.vue | 245 +++++++++++++++++++++++++++
src/assets/api/controller.js | 13 +
3 files changed, 490 insertions(+), 1 deletions(-)
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index 112e278..12d99d0 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -63,6 +63,7 @@
measuresAddressRisksOpportunities,
processReport,
processComplain,
+ inconsistentDistribution,
}
}
@@ -827,4 +828,14 @@
getProcessComplain:'/processComplain/getProcessComplain',//鎶曡瘔澶勭悊璇︽儏
doProcessComplain:'/processComplain/doProcessComplain',//鎶曡瘔澶勭悊淇敼
exportProcessComplain :'/processComplain/exportProcessComplain ',//鎶曡瘔澶勭悊瀵煎嚭
-}
\ No newline at end of file
+}
+
+// 7.10涓嶇鍚堥」鍒嗗竷
+const inconsistentDistribution = {
+ pageInconsistentDistribution:'/inconsistentDistribution/pageInconsistentDistribution', // 涓嶇鍚堥」鐨勫垎甯冨垎椤垫煡璇�
+ getInconsistentDistributionOne:'/inconsistentDistribution/getInconsistentDistributionOne', // 涓嶇鍚堥」鐨勫垎甯冭鎯�
+ addInconsistentDistribution:'/inconsistentDistribution/addInconsistentDistribution', // 涓嶇鍚堥」鐨勫垎甯冩柊澧�
+ updateInconsistentDistribution:'/inconsistentDistribution/updateInconsistentDistribution', // 涓嶇鍚堥」鐨勫垎甯冧慨鏀�
+ delInconsistentDistribution:'/inconsistentDistribution/delInconsistentDistribution', // 涓嶇鍚堥」鐨勫垎甯冨垹闄�
+ exportInconsistentDistribution:'/inconsistentDistribution/exportInconsistentDistribution', // 瀵煎嚭涓嶇鍚堥」鐨勫垎甯�
+}
diff --git a/src/components/do/a7-distribution-of-nonconforming/formDia.vue b/src/components/do/a7-distribution-of-nonconforming/formDia.vue
new file mode 100644
index 0000000..fae7108
--- /dev/null
+++ b/src/components/do/a7-distribution-of-nonconforming/formDia.vue
@@ -0,0 +1,233 @@
+<template>
+ <div>
+ <el-dialog v-loading="diaLoading" :close-on-click-modal="false"
+ :close-on-press-escape="false"
+ :visible.sync="formDia"
+ title="涓嶇鍚堥」鐨勫垎甯�"
+ width="90%" @close="closeDia">
+ <table border="1" cellspacing="10" class="table">
+ <tr>
+ <td>绔犺妭鍙�</td>
+ <th class="div-with-line">
+ <span style="float: left;">瑕佺礌</span>
+ <span style="float: right;">閮ㄩ棬</span>
+ </th>
+ <th>涓讳换</th>
+ <th>鎶�鏈礋璐d汉</th>
+ <th>璐ㄩ噺璐熻矗浜�</th>
+ <th>缁煎悎瀹�</th>
+ <th>璇曢獙瀹�</th>
+ <th>鍚堣</th>
+ <th>鍗�%</th>
+ </tr>
+ <tr v-for="(item, index) in distributionDetailList" :key="item.value">
+ <td>{{item.chapterNumber}}</td>
+ <th>{{item.essentials}}</th>
+ <th>
+ <el-input-number v-model="item.director" :precision="0" clearable size="small"></el-input-number>
+ </th>
+ <th>
+ <el-input-number v-model="item.technology" :precision="0" clearable size="small"></el-input-number>
+ </th>
+ <th>
+ <el-input-number v-model="item.quality" :precision="0" clearable size="small"></el-input-number>
+ </th>
+ <th>
+ <el-input-number v-model="item.comprehensive" :precision="0" clearable size="small"></el-input-number>
+ </th>
+ <th>
+ <el-input-number v-model="item.testing" :precision="0" clearable size="small"></el-input-number>
+ </th>
+ <th>
+ {{item.total}}
+ </th>
+ <th>
+ {{(item.proportion?item.proportion:0) + '%'}}
+ </th>
+ </tr>
+ <tr>
+ <td> </td>
+ <th>
+ 鍗犳瘮
+ </th>
+ <th>
+ {{(distributionProportion.director?distributionProportion.director:0) + '%'}}
+ </th>
+ <th>
+ {{(distributionProportion.technology?distributionProportion.technology:0) + '%'}}
+ </th>
+ <th>
+ {{(distributionProportion.quality?distributionProportion.quality:0) + '%'}}
+ </th>
+ <th>
+ {{(distributionProportion.comprehensive?distributionProportion.comprehensive:0) + '%'}}
+ </th>
+ <th>
+ {{(distributionProportion.testing?distributionProportion.testing:0) + '%'}}
+ </th>
+ <th>
+ {{distributionProportion.total?distributionProportion.total:0}}
+ </th>
+ <th> </th>
+ </tr>
+ </table>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeDia">鍙� 娑�</el-button>
+ <el-button :loading="loading" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+export default {
+ name: 'formDia',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {},
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ formDia: false,
+ diaLoading: false,
+ loading: false,
+ distributionDetailList: [],
+ form: {
+
+ },
+ distributionProportion: {}
+ };
+ },
+ mounted() {
+
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ // 鎵撳紑寮规
+ openDia (type, row) {
+ this.formDia = true
+ this.operationType = type
+ if (type !== 'add') {
+ this.searchInfo(row)
+ } else {
+ this.selectEnumByCategory()
+ }
+ },
+ // 鏌ヨ璇︽儏
+ searchInfo (row) {
+ this.diaLoading = true
+ this.$axios(this.$api.inconsistentDistribution.getInconsistentDistributionOne + '?distributionId=' + row.distributionId).then(res => {
+ this.diaLoading = false
+ if (res.code === 201) return
+ this.form = res.data
+ this.distributionDetailList = this.form.distributionDetailList
+ this.distributionProportion = this.form.distributionProportion
+ }).catch(err => {
+ console.log(err)
+ this.diaLoading = false
+ })
+ },
+ // 鎻愪氦寮规鏁版嵁
+ handleEdit () {
+ const date = new Date();
+ const year = date.getFullYear();
+ this.loading = true
+ const internalPlan = this.HaveJson(this.form)
+ internalPlan.distributionYear = year
+ internalPlan.distributionDetailList = this.HaveJson(this.distributionDetailList)
+ if (this.operationType === 'add') {
+ this.$axios.post(this.$api.inconsistentDistribution.addInconsistentDistribution, internalPlan, {
+ headers: {
+ "Content-Type": "application/json"
+ },
+ noQs: true
+ }).then(res => {
+ this.loading = false
+ if (res.code === 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.loading = false
+ })
+ } else if (this.operationType === 'edit') {
+ this.$axios.post(this.$api.inconsistentDistribution.updateInconsistentDistribution, internalPlan, {
+ headers: {
+ "Content-Type": "application/json"
+ },
+ noQs: true
+ }).then(res => {
+ this.loading = false
+ if (res.code === 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.loading = false
+ })
+ }
+ },
+ closeDia () {
+ this.formDia = false
+ this.$emit('closeDia')
+ },
+ selectEnumByCategory() {
+ this.distributionDetailList = []
+ this.$axios.post(this.$api.enums.selectEnumByCategory, {
+ category: "瑕佺礌"
+ }).then(res => {
+ res.data.map((item) => {
+ const obj = Object.assign({
+ essentials: item.label,
+ chapterNumber: item.value,
+ })
+ this.distributionDetailList.push(obj)
+ })
+ })
+ },
+ }
+};
+</script>
+
+<style scoped>
+>>>.el-dialog {
+ margin: 6vh auto 50px !important;
+}
+>>> .el-dialog__body {
+ max-height: 68vh;
+ overflow-y: auto;
+}
+>>> .is-required {
+ margin-bottom: 6px;
+}
+.table {
+ width: 100%;
+ margin-top: 20px;
+}
+.table td {
+ width: 30px;
+ text-align: center;
+}
+.table th {
+ width: 70px;
+ height: 70px;
+ text-align: center;
+}
+.div-with-line {
+ width: 70px;
+ height: 70px;
+ position: relative;
+ /*overflow: hidden; /* 闅愯棌婧㈠嚭鍐呭 */
+}
+.div-with-line::after {
+ content: '';
+ position: absolute;
+ bottom: 0;
+ height: 1px;
+ background-color: #000000;
+ left: 50%;
+ transform: translateX(-50%) rotate(45deg);
+ transform-origin: center 50%;
+ top: 50%;
+ width: 100px;
+}
+</style>
diff --git a/src/components/view/a7-distribution-of-nonconforming.vue b/src/components/view/a7-distribution-of-nonconforming.vue
new file mode 100644
index 0000000..aa102bf
--- /dev/null
+++ b/src/components/view/a7-distribution-of-nonconforming.vue
@@ -0,0 +1,245 @@
+<template>
+ <div>
+ <div>
+ <div class="view-title">
+ <span>涓嶇鍚堥」鐨勫垎甯�</span>
+ <span>
+ <el-button size="medium" type="primary" @click="openFormDia('add')">鏂� 澧�</el-button>
+ </span>
+ </div>
+ <div class="search-background">
+ <span class="search-group">
+ <span style="width: 120px">骞翠唤锛�</span>
+ <el-input v-model="searchForm.distributionYear" clearable size="small"></el-input>
+ </span>
+ <span class="search-group">
+ <el-button size="medium" @click="resetSearchForm">閲� 缃�</el-button>
+ <el-button size="medium" type="primary" @click="searchList">鏌� 璇�</el-button>
+ </span>
+ </div>
+ <div class="table">
+ <div>
+ <TableCard :showForm="false" :showTitle="false">
+ <template v-slot:table>
+ <ZTTable
+ :column="tableColumn"
+ :height="'calc(100vh - 23em)'"
+ :table-data="tableData"
+ :table-loading="tableLoading"
+ style="padding: 0 15px;margin-bottom: 16px">
+ </ZTTable>
+ </template>
+ </TableCard>
+ <el-pagination :current-page="1" :page-size="page.size" :page-sizes="[10, 20, 30, 50, 100]"
+ :total="total" layout="->,total, sizes, prev, pager, next, jumper"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange">
+ </el-pagination>
+ </div>
+ </div>
+ </div>
+ <form-dia v-if="formDia" ref="formDia" @closeDia="closeDia"></form-dia>
+ </div>
+</template>
+
+<script>
+import ZTTable from '../caorui/ZTTable/index.vue';
+import TableCard from '../caorui/TableCard/index.vue';
+import FormDia from '../do/a7-distribution-of-nonconforming/formDia.vue';
+
+export default {
+ name: 'a7-distribution-of-nonconforming',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: { FormDia, TableCard, ZTTable },
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ searchForm: {
+ distributionYear: '',
+ },
+ tableColumn: [
+ {
+ label: '骞翠唤',
+ prop: 'distributionYear',
+ minWidth: '100'
+ },
+ {
+ label: '鍒涘缓浜�',
+ prop: 'createUserName',
+ minWidth: '100'
+ },
+ {
+ label: '鍒涘缓鏃堕棿',
+ prop: 'createTime',
+ minWidth: '100'
+ },
+ {
+ label: '淇敼浜�',
+ prop: 'updateUserName',
+ minWidth: '100'
+ },
+ {
+ label: '淇敼鏃堕棿',
+ prop: 'updateTime',
+ minWidth: '100'
+ },
+ {
+ dataType: 'action',
+ minWidth: '220',
+ label: '鎿嶄綔',
+ operation: [
+ {
+ name: '瀵煎嚭',
+ type: 'text',
+ clickFun: (row) => {
+ this.handleDown(row)
+ }
+ },
+ {
+ name: '缂栬緫',
+ type: 'text',
+ clickFun: (row) => {
+ this.openFormDia('edit', row);
+ },
+ },
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ color: '#f56c6c',
+ clickFun: (row) => {
+ this.delPlan(row)
+ },
+ }
+ ]
+ }
+ ],
+ tableData: [],
+ tableLoading: false,
+ page: {
+ size: 20,
+ current: 1,
+ },
+ total: 0,
+ formDia: false,
+ };
+ },
+ mounted() {
+ this.searchList()
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ // 鏌ヨ鍒楄〃
+ searchList () {
+ const entity = this.searchForm
+ const page = this.page
+ this.tableLoading = true
+ this.$axios.post(this.$api.inconsistentDistribution.pageInconsistentDistribution, {entity, page}, {
+ headers: {
+ "Content-Type": "application/json"
+ },
+ noQs: true
+ }).then(res => {
+ this.tableLoading = false
+ if (res.code === 201) return
+ this.tableData = res.data.records
+ this.total = res.data.total
+ }).catch(err => {
+ console.log('err---', err);
+ this.tableLoading = false
+ })
+ },
+ // 鍒犻櫎
+ delPlan (row) {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ this.tableLoading = true
+ this.$axios.get(this.$api.inconsistentDistribution.delInconsistentDistribution + '?distributionId=' + row.distributionId).then(res => {
+ this.tableLoading = false
+ if (res.code === 201) return
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.searchList()
+ }).catch(err => {
+ this.tableLoading = false
+ console.log('err---', err);
+ })
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堝垹闄�'
+ });
+ });
+ },
+ // 鏂板锛岀紪杈戯紝鎵瑰噯寮规
+ openFormDia (type, row) {
+ this.formDia = true
+ this.$nextTick(() => {
+ this.$refs.formDia.openDia(type, row)
+ })
+ },
+ // 瀵煎嚭
+ handleDown (row) {
+ this.$axios.get(this.$api.inconsistentDistribution.exportInconsistentDistribution + '?distributionId=' + row.distributionId,{responseType: "blob"}).then(res => {
+ this.outLoading = false
+ this.$message.success('瀵煎嚭鎴愬姛')
+ const blob = new Blob([res],{ type: 'application/msword' });
+ const url = URL.createObjectURL(blob);
+ const link = document.createElement('a');
+ link.href = url;
+ link.download = '涓嶇鍚堥」鐨勫垎甯�' + '.docx';
+ link.click();
+ })
+ },
+ closeDia () {
+ this.formDia = false
+ this.searchList()
+ },
+ // 閲嶇疆鏌ヨ鏉′欢
+ resetSearchForm () {
+ this.searchForm.distributionYear = '';
+ this.searchList()
+ },
+ // 鍒嗛〉
+ handleSizeChange(val) {
+ this.page.size = val;
+ this.searchList();
+ },
+ handleCurrentChange(val) {
+ this.page.current = val;
+ this.searchList();
+ },
+ }
+};
+</script>
+
+<style scoped>
+.view-title {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ height: 60px;
+ padding-left: 20px;
+}
+
+.search-background {
+ width: 100%;
+ height: 80px;
+ line-height: 80px;
+ background-color: #ffffff;
+ display: flex;
+}
+
+.search-group {
+ display: flex;
+ align-items: center;
+ margin: 0 20px;
+}
+
+.table {
+ margin-top: 20px;
+ background-color: #ffffff;
+ padding-top: 20px;
+}
+</style>
--
Gitblit v1.9.3