From 2e416be86cca9df5d20e0c9988aa1e4c4afe6b46 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期四, 26 十二月 2024 14:33:07 +0800
Subject: [PATCH] 完成量值溯源计划迁移
---
src/components/view/a6-quantity-value-traceability-plan.vue | 323 +++++++++++++++++++++++++++++++++++
src/components/do/a6-quantity-value-traceability-plan/formDia.vue | 162 ++++++++++++++++++
static/js/menu.js | 26 +-
src/assets/api/controller.js | 10 +
4 files changed, 508 insertions(+), 13 deletions(-)
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index cc3fd74..a455cca 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -67,6 +67,7 @@
facilitiesAndEnvironment,
internalWastes,
foreignRegister,
+ feCalibrationSchedule,
}
}
@@ -892,3 +893,12 @@
delForeignRegister: '/foreignRegister/delForeignRegister', // 澶栨潵浜哄憳鍒犻櫎
exportForeignRegister: '/foreignRegister/exportForeignRegister', // 瀵煎嚭澶栨潵浜哄憳
}
+
+// 6.5閲忓�兼函婧愯鍒�
+const feCalibrationSchedule = {
+ getPageCalibrationSchedule:'/feCalibrationSchedule/getPageCalibrationSchedule',// 閲忓�兼函婧愯鍒掓煡璇�
+ addCalibrationSchedule:'/feCalibrationSchedule/addCalibrationSchedule',//閲忓�兼函婧愯鍒掓柊澧炵紪杈�
+ removeCalibrationSchedule:'/feCalibrationSchedule/removeCalibrationSchedule',//鍒犻櫎閲忓�兼函婧愯鍒�
+ exportOfValueTraceabilityPlan: '/feCalibrationSchedule/exportOfValueTraceabilityPlan', // 閲忓�兼函婧愯鍒� 瀵煎嚭
+ importOfValueTraceabilityPlan: '/feCalibrationSchedule/importOfValueTraceabilityPlan', // 閲忓�兼函婧愯鍒� 瀵煎叆
+}
diff --git a/src/components/do/a6-quantity-value-traceability-plan/formDia.vue b/src/components/do/a6-quantity-value-traceability-plan/formDia.vue
new file mode 100644
index 0000000..44888f1
--- /dev/null
+++ b/src/components/do/a6-quantity-value-traceability-plan/formDia.vue
@@ -0,0 +1,162 @@
+<template>
+ <div>
+ <el-dialog v-loading="diaLoading" :close-on-click-modal="false"
+ :close-on-press-escape="false"
+ :visible.sync="formDia"
+ title="閲忓�兼函婧愯鍒�"
+ width="80%" @close="closeFormDia">
+ <el-form ref="form" :model="form" :rules="rules" label-position="right" label-width="auto">
+ <el-row :gutter="20">
+ <el-col :span="12">
+ <el-form-item label="浠櫒鍚嶇О" prop="instrumentName">
+ <el-input v-model="form.instrumentName" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="瑙勬牸鍨嬪彿" prop="model">
+ <el-input v-model="form.model" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="绠$悊缂栧彿" prop="managementNumber">
+ <el-input v-model="form.managementNumber" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鎶�鏈寚鏍�" prop="technicalIndicators">
+ <el-input v-model="form.technicalIndicators" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="妫�瀹氬懆鏈�" prop="verificationCyde">
+ <el-input v-model="form.verificationCyde" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="妫�瀹氬崟浣�" prop="verificationUnit">
+ <el-input v-model="form.verificationUnit" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鏈�杩戞瀹氭棩鏈�" prop="recentlyTime">
+ <el-date-picker
+ v-model="form.recentlyTime"
+ clearable
+ format="yyyy-MM-dd HH:mm:ss" placeholder="閫夋嫨鏃ユ湡"
+ size="small" style="width: 100%"
+ type="datetime" value-format="yyyy-MM-dd HH:mm:ss">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="璁″垝涓嬫妫�瀹氭棩鏈�" prop="nextTime">
+ <el-date-picker
+ v-model="form.nextTime"
+ clearable
+ format="yyyy-MM-dd HH:mm:ss" placeholder="閫夋嫨鏃ユ湡"
+ size="small" style="width: 100%"
+ type="datetime" value-format="yyyy-MM-dd HH:mm:ss">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="form.remark" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeFormDia">鍙� 娑�</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,
+ form: {
+ instrumentName: '',
+ model: '',
+ managementNumber: '',
+ technicalIndicators: '',
+ verificationCyde: '',
+ verificationUnit: '',
+ recentlyTime: '',
+ nextTime: '',
+ remark: '',
+ id: '',
+ },
+ rules: {
+ instrumentName: [{required: true, message: '璇峰~鍐欎华鍣ㄥ悕绉�',trigger: 'blur'}],
+ model: [{required: true, message: '璇峰~鍐欒鏍煎瀷鍙�',trigger: 'blur'}],
+ managementNumber: [{required: true, message: '璇峰~鍐欑鐞嗙紪鍙�',trigger: 'blur'}],
+ technicalIndicators: [{required: true, message: '璇峰~鍐欐妧鏈寚鏍�',trigger: 'blur'}],
+ verificationCyde: [{required: true, message: '璇峰~鍐欐瀹氬懆鏈�',trigger: 'blur'}],
+ verificationUnit: [{required: true, message: '璇峰~鍐欐瀹氬崟浣�',trigger: 'blur'}],
+ recentlyTime: [{required: true, message: '璇烽�夋嫨鏈�杩戞瀹氭棩鏈�',trigger: 'change'}],
+ nextTime: [{required: true, message: '璇烽�夋嫨璁″垝涓嬫妫�瀹氭棩鏈�',trigger: 'change'}],
+ },
+ operationType: '',
+ }
+ },
+ mounted() {
+
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+// 鎵撳紑寮规
+ openDia (type, row) {
+ this.formDia = true
+ this.operationType = type
+ if (type !== 'add') {
+ this.form = row
+ }
+ },
+ // 鎻愪氦寮规鏁版嵁
+ handleEdit () {
+ this.$refs['form'].validate((valid) => {
+ if (valid) {
+ this.loading = true
+ const internalReport = this.HaveJson(this.form)
+ this.$axios.post(this.$api.feCalibrationSchedule.addCalibrationSchedule, internalReport, {
+ headers: {
+ "Content-Type": "application/json"
+ },
+ noQs: true
+ }).then(res => {
+ this.loading = false
+ if (res.code === 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeFormDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.loading = false
+ })
+ } else {
+ console.log('error submit!!');
+ return false;
+ }
+ });
+ },
+ closeFormDia () {
+ this.$refs.form.resetFields();
+ this.formDia = false
+ this.$emit('closeFormDia')
+ },
+ },
+}
+</script>
+
+<style scoped>
+</style>
diff --git a/src/components/view/a6-quantity-value-traceability-plan.vue b/src/components/view/a6-quantity-value-traceability-plan.vue
new file mode 100644
index 0000000..d1cc5ac
--- /dev/null
+++ b/src/components/view/a6-quantity-value-traceability-plan.vue
@@ -0,0 +1,323 @@
+<template>
+ <div>
+ <div>
+ <div class="view-title">
+ <span>閲忓�兼函婧愯鍒�</span>
+ <span>
+ <el-button size="medium" @click="exportFun">瀵� 鍑�</el-button>
+ <el-button size="medium" @click="uploadDia = true">瀵� 鍏�</el-button>
+ <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.instrumentName" clearable size="small"></el-input>
+ </span>
+ <span class="search-group">
+ <span style="width: 120px">绠$悊缂栧彿锛�</span>
+ <el-input v-model="searchForm.managementNumber" 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" @closeFormDia="closeFormDia"></form-dia>
+ <el-dialog :visible.sync="uploadDia" title="鏁版嵁瀵煎叆" width="500px">
+ <div style="margin: 0 auto;">
+ <el-upload ref="upload" :action="javaApi + $api.feCalibrationSchedule.importOfValueTraceabilityPlan" :auto-upload="false" :before-upload="beforeUpload" :file-list="fileList" :headers="token"
+ :limit="1" :on-error="onError" :on-success="onSuccess" accept=".xlsx" drag
+ name="file">
+ <i class="el-icon-upload"></i>
+ <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+ </el-upload>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="uploadDia = false">鍙� 娑�</el-button>
+ <el-button :loading="uploading" type="primary" @click="submitUpload()">涓� 浼�</el-button>
+ </span>
+ </el-dialog >
+ </div>
+</template>
+
+<script>
+import TableCard from '../caorui/TableCard/index.vue';
+import ZTTable from '../caorui/ZTTable/index.vue';
+import FormDia from '../do/a6-quantity-value-traceability-plan/formDia.vue';
+
+export default {
+ name: 'a6-quantity-value-traceability-plan',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: { FormDia, ZTTable, TableCard },
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ outLoading: false,
+ searchForm: {
+ instrumentName: '',
+ managementNumber: '',
+ },
+ tableColumn: [
+ {
+ label: '浠櫒鍚嶇О',
+ prop: 'instrumentName',
+ minWidth: '120'
+ },
+ {
+ label: '瑙勬牸鍨嬪彿',
+ prop: 'model',
+ minWidth: '100'
+ },
+ {
+ label: '绠$悊缂栧彿',
+ prop: 'managementNumber',
+ minWidth: '100'
+ },
+ {
+ label: '鎶�鏈寚鏍�',
+ prop: 'technicalIndicators',
+ minWidth: '100'
+ },
+ {
+ label: '妫�瀹氬懆鏈�',
+ prop: 'verificationCyde',
+ minWidth: '100'
+ },
+ {
+ label: '妫�瀹氬崟浣�',
+ prop: 'verificationUnit',
+ minWidth: '100'
+ },
+ {
+ label: '鏈�杩戞瀹氭棩鏈�',
+ prop: 'recentlyTime',
+ minWidth: '100'
+ },
+ {
+ label: '璁″垝涓嬫妫�瀹氭棩鏈�',
+ prop: 'nextTime',
+ minWidth: '100'
+ },
+ {
+ label: '澶囨敞',
+ prop: 'remark',
+ minWidth: '100'
+ },
+ {
+ dataType: 'action',
+ fixed: 'right',
+ minWidth: '180',
+ label: '鎿嶄綔',
+ operation: [
+ {
+ name: '缂栬緫',
+ type: 'text',
+ clickFun: (row) => {
+ this.openFormDia('edit', row);
+ },
+ },
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ color: '#f56c6c',
+ clickFun: (row) => {
+ this.delPlan(row)
+ },
+ }
+ ]
+ }
+ ],
+ tableData: [],
+ tableLoading: false,
+ uploadDia: false,
+ uploading: false,
+ page: {
+ size: 20,
+ current: 1,
+ },
+ total: 0,
+ formDia: false,
+ fileList: [],
+ token: ""
+ };
+ },
+ mounted() {
+ this.token = {
+ 'token': sessionStorage.getItem('token')
+ }
+ this.searchList()
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ beforeUpload(file, fileList) {
+ if (file.type != 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
+ this.$message.error('涓婁紶鏂囦欢鏍煎紡涓嶆纭�');
+ this.$refs.upload.clearFiles()
+ return false;
+ }
+ },
+ submitUpload() {
+ if (this.$refs.upload.uploadFiles.length == 0) {
+ this.$message.error('鏈�夋嫨鏂囦欢')
+ return
+ }
+ this.uploading = true
+ this.$refs.upload.submit();
+ this.uploading = false
+ },
+ onError(err, file, fileList) {
+ this.$message.error('涓婁紶澶辫触')
+ this.$refs.upload.clearFiles()
+ this.uploading = false
+ },
+ onSuccess(response, file, fileList) {
+ this.$refs.upload.clearFiles()
+ this.uploadDia = false
+ this.uploading = false
+ if (response.code == 201) {
+ this.$message.error(response.message)
+ return
+ }
+ this.$message.success('涓婁紶鎴愬姛')
+ this.standardList = []
+ this.productList = []
+ this.searchList()
+ },
+ // 瀵煎嚭
+ exportFun() {
+ this.outLoading = true
+ this.$axios.post(this.$api.feCalibrationSchedule.exportOfValueTraceabilityPlan, {
+ instrumentName: this.searchForm.instrumentName
+ }, {responseType: "blob"}).then(res => {
+ this.outLoading = false
+ this.$message.success('瀵煎嚭鎴愬姛')
+ const blob = new Blob([res], {type: 'application/octet-stream'});
+ const url = URL.createObjectURL(blob);
+ const link = document.createElement('a');
+ link.href = url;
+ link.download = '閲忓�兼函婧愯鍒�.xlsx';
+ link.click();
+ }).finally(() => {
+ this.outLoading = false
+ })
+ },
+ // 鏌ヨ鍒楄〃
+ searchList () {
+ this.tableLoading = true
+ this.$axios.get(this.$api.feCalibrationSchedule.getPageCalibrationSchedule + '?instrumentName=' + this.searchForm.instrumentName
+ + '&managementNumber=' + this.searchForm.managementNumber
+ + '&pages=' + this.page.current + '&size=' + this.page.size).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.feCalibrationSchedule.removeCalibrationSchedule + '?id=' + row.id).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: '宸插彇娑堝垹闄�'
+ });
+ });
+ },
+ // 閲嶇疆鏌ヨ鏉′欢
+ resetSearchForm () {
+ this.searchForm.instrumentName = '';
+ this.searchForm.managementNumber = '';
+ this.searchList()
+ },
+ // 鏂板锛岀紪杈戯紝鎵瑰噯寮规
+ openFormDia (type, row) {
+ this.formDia = true
+ this.$nextTick(() => {
+ this.$refs.formDia.openDia(type, row)
+ })
+ },
+ closeFormDia () {
+ this.formDia = false
+ 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>
diff --git a/static/js/menu.js b/static/js/menu.js
index e70a0ce..a2dd275 100644
--- a/static/js/menu.js
+++ b/static/js/menu.js
@@ -375,19 +375,19 @@
g: "6.6 澶栭儴鎻愪緵鐨勪骇鍝佸拰鏈嶅姟",
p: ""
},
- {
- v: "璁惧鎬昏",
- i: "font icon-erjidaohang",
- u: "a6-device-overview",
- g: "6.4 璁惧",
- p: "selectDeviceParameter"
- }, {
- v: "璁惧宸ュ叿鏄庣粏",
- i: "font icon-erjidaohang",
- u: "a6-device-management",
- g: "6.4 璁惧",
- p: "selectDeviceParameter"
- },
+ // {
+ // v: "璁惧鎬昏",
+ // i: "font icon-erjidaohang",
+ // u: "a6-device-overview",
+ // g: "6.4 璁惧",
+ // p: "selectDeviceParameter"
+ // }, {
+ // v: "璁惧宸ュ叿鏄庣粏",
+ // i: "font icon-erjidaohang",
+ // u: "a6-device-management",
+ // g: "6.4 璁惧",
+ // p: "selectDeviceParameter"
+ // },
{
v: "鏍囧噯鐗╄川娓呭崟",
i: "font icon-erjidaohang",
--
Gitblit v1.9.3