From dd5c0e7704a9ed729492b328e42d22014067b0b4 Mon Sep 17 00:00:00 2001 From: wente <329538422@qq.com> Date: 星期二, 19 十二月 2023 14:29:12 +0800 Subject: [PATCH] 基线表 --- web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue | 354 ++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 288 insertions(+), 66 deletions(-) diff --git a/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue index 2bd1f40..497e643 100644 --- a/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue +++ b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue @@ -1,88 +1,310 @@ <template> - <zt-dialog ref="dialog" column="2" @confirm="formSubmit"> - <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px"> - <zt-form-item label="缂栧彿" prop="code" rules="required"> - <el-input v-model="dataForm.code"></el-input> - </zt-form-item> - <zt-form-item label="椤圭洰鏍囪瘑" prop="softwareidentity" rules="required"> - <el-input v-model="dataForm.softwareidentity"></el-input> - </zt-form-item> - <zt-form-item label="椤圭洰鍚嶇О" prop="softwarename" rules="required"> - <el-input v-model="dataForm.softwarename"></el-input> - </zt-form-item> - <zt-form-item label="妫�鏌ヤ汉" prop="examiner" rules="required"> - <el-input v-model="dataForm.examiner"></el-input> - </zt-form-item> - <zt-form-item label="妫�鏌ユ椂闂�" prop="examDate" rules="required"> - <el-input v-model="dataForm.examDate"></el-input> - </zt-form-item> - <zt-form-item label="闂鎻忚堪" prop="problemDescription" rules="required"> - <el-input v-model="dataForm.problemDescription"></el-input> - </zt-form-item> - <zt-form-item label="闂澶勭悊" prop="problemProcess" rules="required"> - <el-input v-model="dataForm.problemProcess"></el-input> - </zt-form-item> - <zt-form-item label="澶勭悊浜�" prop="processor" rules="required"> - <el-input v-model="dataForm.processor"></el-input> - </zt-form-item> - <zt-form-item label="澶勭悊鏃ユ湡" prop="processDate" rules="required"> - <el-input v-model="dataForm.processDate"></el-input> - </zt-form-item> - <zt-form-item label="楠岃瘉浜�" prop="verifier" rules="required"> - <el-input v-model="dataForm.verifier"></el-input> - </zt-form-item> - <zt-form-item label="楠岃瘉鏃ユ湡" prop="verifyDate" rules="required"> - <el-input v-model="dataForm.verifyDate"></el-input> - </zt-form-item> - <zt-form-item label="骞翠唤" prop="year" rules="required"> - <el-input v-model="dataForm.year"></el-input> - </zt-form-item> + <zt-dialog ref="dialog" column="2" @confirm="formSubmit" :stepMarker="stepMarker" :append-to-body="true"> + <el-form :model="dataForm" :inline="true" ref="dataForm" style="padding-top: 0" :disabled="dataForm.disabled" + label-width="120px" class="testCheckFormAuto"> + <div> + <el-form-item label-width="60px" label="缂栧彿:" style="width:100%;margin-bottom: -5px"> + <span>{{ dataForm.checkOrder.code || '缂栧彿鑷姩鐢熸垚' }}</span> + </el-form-item> + </div> + <div style="border: 1px solid rgba(0,0,0,.2);width: 99%"> + <div style="border-bottom: 1px solid rgba(0,0,0,.2);" class="testCheckContentWidth"> + <el-form-item class="marginTopAndMarginBottom" label="椤圭洰鏍囪瘑" style="width: 49%"> + <el-input v-model="dataForm.project.softwareIdentity" placeholder="椤圭洰鏍囪瘑"></el-input> + </el-form-item> + <el-form-item class="marginTopAndMarginBottom" label="椤圭洰鍚嶇О" style="width: 49%"> + <el-input v-model="dataForm.project.softwareName" placeholder="椤圭洰鍚嶇О"></el-input> + </el-form-item> + <el-form-item class="marginTopAndMarginBottom3" label="妫�鏌ヤ汉" style="width: 49%"> + <el-input v-if="stepMarker=='csjcd_first'" v-model="dataForm.checkOrder.examiner" + placeholder="妫�鏌ヤ汉"></el-input> + <span v-else>{{ dataForm.checkOrder.examiner }}</span> + </el-form-item> + <el-form-item class="marginTopAndMarginBottom3" label="妫�鏌ユ椂闂�" style="width: 49%"> + <el-date-picker + v-if="stepMarker=='csjcd_first'" + v-model="dataForm.checkOrder.examDate" + type="date" + placeholder="璇烽�夋嫨妫�鏌ユ椂闂�"> + </el-date-picker> + <span v-else>{{ dataForm.checkOrder.examDate }}</span> + </el-form-item> + </div> + <div style="border-bottom: 1px solid rgba(0,0,0,.2);"> + <div style="padding-left:5px;padding-right:5px;"> + <div style="padding: 5px">妫�鏌ラ」鐩�:{{ subtitle }}</div> + <div class="table-container"> + <el-table ref="tableCirculatOrderList" class="el-software el-margin-top-bot" border + :data="dataForm.checkOrderList" + stripe> + <el-table-column prop="no" align="center" width="60" label="搴忓彿"> + <template slot-scope="scope"> + <span v-html="indexFormat(scope.$index)"></span> + </template> + </el-table-column> + <el-table-column prop="checkContent" min-width="180" label="涓昏妫�鏌ュ唴瀹�"> + <!-- <template v-slot="{ row }">--> + <!-- <el-input v-model="row.checkContent" placeholder="涓昏妫�鏌ュ唴瀹�"></el-input>--> + <!-- </template>--> + </el-table-column> + <el-table-column prop="checkResult" align="center" width="200" label="妫�鏌ョ粨鏋�"> + <template v-slot="{ row }"> + <zt-dict :disabled="stepMarker!=='csjcd_first'" v-model="row.checkResult" :dict="getDict" + :radio="true"></zt-dict> + </template> + </el-table-column> + <el-table-column prop="remark" label="澶囨敞" width="100" align="center"> + <template v-slot="{ row }"> + <el-input v-if="stepMarker=='csjcd_first'" v-model="row.remark" placeholder="澶囨敞"></el-input> + <span v-else>{{ row.remark }}</span> + </template> + </el-table-column> + <!-- <el-table-column fixed="right" prop="files" label="涓婁紶闄勪欢" width="300" align="center"> + <template v-slot="{ row }"> + <!– <zt-table-button @click="files(row.id)">涓婁紶闄勪欢</zt-table-button>–> + <table-uploader busi-type="circulat_order" model-name="row" :dataForm="row" + v-model="row.files"/> + </template> + </el-table-column>--> + </el-table> + <!-- <div class="icon-container" @click="addCirculatRow()">--> + <!-- <!– 鏀剧疆鍥哄畾鐨勫浘鏍� –>--> + <!-- <i class="el-icon-plus"></i>--> + <!-- </div>--> + </div> + </div> + </div> + <div class="el-flexCirculationDialog el-border-bottom"> + <div style="width: 112px;text-align: center;font-weight: 600"> + 闂鎻忚堪 + </div> + <div class="el-border-left acceptDate" style="height: 80px;width: 80%;"> + <el-form-item style="width: 100%;padding-left:20px;margin:0;"> + <el-input v-if="stepMarker=='csjcd_first'" type="textarea" + :rows="3" v-model="dataForm.checkOrder.problemDescription" placeholder="闂鎻忚堪..."></el-input> + <span v-else>{{ dataForm.checkOrder.problemDescription }}</span> + </el-form-item> + </div> + </div> + <div class="el-flexCirculationDialog el-border-bottom"> + <div style="width: 112px;text-align: center;font-weight: 600"> + 闂澶勭悊 + </div> + <div class="el-border-left acceptDate" style="height: 80px;width: 80%;"> + <el-form-item style="width: 100%;padding-left:20px;margin:0;"> + <el-input v-if="stepMarker=='csjcd_wtcl'" type="textarea" + :rows="3" v-model="dataForm.checkOrder.problemProcess" placeholder="闂澶勭悊..."></el-input> + <span v-else>{{ dataForm.checkOrder.problemProcess }}</span> + </el-form-item> + </div> + </div> + <div class="el-flexCirculationDialog"> + <div style="width: 112px;text-align: center;font-weight: 600"> + 澶勭悊浜� + </div> + <div class="el-border-left-right acceptDate1" style="width: 40%;height: 40px;"> + <el-form-item style="width: 100%;padding-left:20px;margin:0;"> + <span>{{ dataForm.checkOrder.processor }}</span> + </el-form-item> + </div> + <div style="width: 84px;text-align: center;font-weight: 600"> + 楠岃瘉浜� + </div> + <div class="el-border-left acceptDate1" style="width: 40%;height: 40px;"> + <el-form-item label-width="150px" style="width: 100%;padding-left:20px;margin-bottom:0"> + <span>{{ dataForm.checkOrder.verifier }}</span> + </el-form-item> + </div> + </div> + </div> </el-form> + <template v-slot:footer> + <el-button v-if="dataForm.disabled" type="primary" @click="print()">鎵撳嵃</el-button> + </template> </zt-dialog> </template> <script> - export default { - data() { - return { - dataForm: { - id: '', - projectId: '', +import qs from "qs"; +import Cookies from "js-cookie"; + +export default { + data() { + return { + pageCode: '', + stepMarker: '', + configDetailRow: null, + subtitle: '', + pageName: { + plan: '杞欢娴嬭瘯璁″垝', explain: '杞欢娴嬭瘯璇存槑', record: '杞欢娴嬭瘯璁板綍', report: '杞欢娴嬭瘯鎶ュ憡', + contract: '鍚堝悓璇勫闃舵', require: '娴嬭瘯闇�姹傚垎鏋愪笌绛栧垝闃舵',execute:'娴嬭瘯璁捐涓庡疄鐜般�佹墽琛岄樁娈�',summary:'娴嬭瘯鎬荤粨闃舵' + }, + dataForm: { + id: '', + projectId: '', + project: { + softwareIdentity: '', + softwareName: '', + }, + checkOrder: { code: '', - softwareidentity: '', - softwarename: '', examiner: '', examDate: '', problemDescription: '', problemProcess: '', processor: '', - processorId: '', - processDate: '', verifier: '', - verifierId: '', - verifyDate: '', - year: '' + }, + checkOrderList: [] + } + } + }, + computed: { + getDict() { + if (this.pageCode && (this.pageCode === 'plan' || this.pageCode === 'explain' || this.pageCode === 'record' || this.pageCode === 'report')) { + return 'tristate1' + } else { + return 'tristate2' } } + }, + methods: { + init(id, row) { + this.configDetailRow = row + if (row.checkId) { + console.log('閰嶇疆椤瑰叆搴撳鏍歌繘鏉ョ殑 TestCheckOrder-AddOrUpdate.vue init row.checkId') + if (row.checkId != -1) { + this.dataForm.id = row.checkId + } + } else if (id) { + this.dataForm.id = id + } else { + this.dataForm.id = row.id + } + this.pageCode = row.pageCode + this.subtitle = this.pageName[this.pageCode] + + if (row.projectId) { + this.dataForm.projectId = row.projectId + } + if (this.configDetailRow) { + if (!row.stepMarker) { + this.stepMarker = 'csjcd_first' + this.title = '鍙戣捣娴嬭瘯妫�鏌ュ崟' + } else { + this.title = row.stepName + this.stepMarker = row.stepMarker + } + } + //this.dataForm.disabled + this.getInfo() + + //console.log(this.dataForm.id, this.dataForm.projectId, this.stepMarker, 'this.dataForm.id, this.dataForm.projectId,this.stepMarker') }, - methods: { - // 鑾峰彇淇℃伅 - async getInfo() { - let res = await this.$http.get(`/testCheckOrder/TestCheckOrder/${this.dataForm.id}`) - this.dataForm = { - ...this.dataForm, - ...res.data + indexFormat(index) { + return index += 1 + }, + // 鑾峰彇淇℃伅 + async getInfo() { + let params = { + checkId: this.dataForm.id, + projectId: this.dataForm.projectId, + pageCode: this.pageCode + } + console.log(this.pageCode, "getInfo pageCode") + let res = await this.$http.get(`/testCheckOrder/TestCheckOrder/getDto`, {params: params}) + this.dataForm = { + ...this.dataForm, + ...res.data + } + console.log(this.dataForm, 'this.dataForm this.dataForm') + }, + async print() { + var params = qs.stringify({ + token: Cookies.get('token'), + id: this.dataForm.id, + pageCode: this.pageCode + }) + let apiURL = `/testCheckOrder/TestCheckOrder/exportCheckOrder` + window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}` + }, + // 琛ㄥ崟鎻愪氦 + async formSubmit(submitType) { + let isFlow = false + if (submitType == 'tj') { + for (let item of this.dataForm.checkOrderList) { + if (!item.checkResult) { + this.$alert("鏈夋湭濉啓鐨勬暟鎹�") + return + } else if (item.checkResult == "2") { + isFlow = true + } } - }, - // 琛ㄥ崟鎻愪氦 - async formSubmit() { - let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/testCheckOrder/TestCheckOrder/', this.dataForm) - if (res.success) { - await this.$tip.success() - this.$refs.dialog.close() - this.$emit('refreshDataList') + if (submitType == 'tj' && !isFlow) { + submitType == '' } + } + if (submitType == 'bl') { + isFlow = true + } + if (submitType == 'tj' && isFlow || submitType == 'bl' && isFlow) { + let flowInfo = { + flowCode: 'csjcd', + stepIdMark: this.stepMarker, + submitType: submitType + } + this.dataForm.flowInfoDto = flowInfo; + } + console.log(this.dataForm, "this.dataForm formSubmit(submitType)") + let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/testCheckOrder/TestCheckOrder/', this.dataForm) + if (res.success) { + await this.$tip.success() + this.$refs.dialog.close() + this.$emit('recall', res.data, this.configDetailRow) + this.$emit('refreshDataList') } } } +} </script> +<style> +.el-flexCirculationDialog { + display: flex; + align-items: center +} + +.testCheckFormAuto .acceptDate > .el-form-item > .el-form-item__content { + width: 100%; +} + +.testCheckFormAuto .acceptDate1 > .el-form-item > .el-form-item__content { + width: 100%; +} + +.testCheckFormAuto .marginTopAndMarginBottom { + margin-top: 10px !important; + margin-bottom: 0 !important; +} + +.testCheckFormAuto .marginTopAndMarginBottom2 { + margin-top: -10px !important; + margin-bottom: 10px !important; +} + +.testCheckFormAuto .marginTopAndMarginBottom3 { + margin-top: 0 !important; + margin-bottom: 10px !important; +} + +.testCheckFormAuto .acceptDate > .el-form-item > .el-form-item__content { + line-height: 78px; +} + +.testCheckContentWidth > .el-form-item > .el-form-item__content { + width: calc(100% - 120px); +} + +.testCheckFormAuto .el-radio { + margin-right: 10px; +} +</style> -- Gitblit v1.9.1