From bb9bf60cbd34d0638f1df89c69358533b2cc220c Mon Sep 17 00:00:00 2001 From: wente <329538422@qq.com> Date: 星期二, 05 十二月 2023 15:48:40 +0800 Subject: [PATCH] 项目表 --- web/src/views/modules/testCheckOrder/TestPlanCheckOrder.vue | 2 web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue | 240 +++++++++++++++++++++++++++++++-------- web/src/views/modules/testCheckOrder/TestReportCheckOrder.vue | 5 web/src/components/config-uploader/src/config-uploader.vue | 6 web/src/views/modules/testCheckOrder/TestExplainCheckOrder.vue | 4 web/src/views/modules/testCheckOrder/TestRecordCheckOrder.vue | 2 web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue | 51 +++++++- web/src/assets/css/custom.css | 18 ++ web/src/views/modules/testCheckOrder/TestCheckOrder.vue | 27 ++++ 9 files changed, 285 insertions(+), 70 deletions(-) diff --git a/web/src/assets/css/custom.css b/web/src/assets/css/custom.css index 5d4b486..4b4f415 100644 --- a/web/src/assets/css/custom.css +++ b/web/src/assets/css/custom.css @@ -357,7 +357,19 @@ transition: transform 0.3s ease,box-shadow 0.3s ease,opacity 0.3s ease; opacity: 0; } -.icon-container:hover{ - transform: translate3d(-50%, 0, 0); - box-shadow: 0 10px 10px 0 rgba(72, 119, 232, 0.34) +/*.icon-container:hover{*/ +/* transform: translate3d(-50%, 0, 0);*/ +/* box-shadow: 0 10px 10px 0 rgba(72, 119, 232, 0.34)*/ +/*}*/ +.el-dropdown.dropdown_hover{ + position: absolute; + border: 1px solid #EBEEF5; + background-color: #fafafa; + box-shadow: 0 3px 6px 0 rgba(72, 119, 232, 0.14); + border-radius: 2px; + display: block; + width: 300px; + left: -325%; + color: #606266; + font-size: 14px; } diff --git a/web/src/components/config-uploader/src/config-uploader.vue b/web/src/components/config-uploader/src/config-uploader.vue index ba3779d..956ed4e 100644 --- a/web/src/components/config-uploader/src/config-uploader.vue +++ b/web/src/components/config-uploader/src/config-uploader.vue @@ -158,8 +158,11 @@ } }, change(busiField) { - console.log(busiField, 'config_uploader change(busiField) busiField') + console.log(busiField,this.uploadList, 'config_uploader change(busiField) busiField') console.log(this.fields, 'change this.fields') + if (!Array.isArray(this.dataForm[busiField])) { + this.$set(this.dataForm, busiField, []) + } this.fields.forEach(field => { if (field.busiField === busiField) { field.files.length = 0 @@ -170,6 +173,7 @@ if (this.dataForm) { this.dataForm.hasUploadFinsh = 100 } + console.log(this.dataForm[busiField], 'config_uploader change(busiField) this.dataForm[busiField]') } }) console.log(this.dataForm, 'config_uploader change(busiField)') diff --git a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue index 9941199..733caa6 100644 --- a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue +++ b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue @@ -62,7 +62,7 @@ <el-input v-model="row.retrospectVersion" placeholder="涓婃函鐗�"></el-input> </template> </el-table-column> - <el-table-column prop="secretClass" label="瀵嗙骇" width="80" align="center"> + <el-table-column prop="secretClass" label="瀵嗙骇" width="100" align="center"> <template v-slot="{ row }"> <zt-dict v-model="row.secretClass" placeholder="瀵嗙骇" dict="secret_class" clearable></zt-dict> @@ -75,10 +75,28 @@ v-model="row.files"/> </template> </el-table-column> + <el-table-column fixed="right" label="绠$悊" width="80" align="center"> + <template v-slot="{ row }"> + <zt-table-button @click="">绠$悊</zt-table-button> +<!-- <table-uploader busi-type="config_item_warehouse" model-name="row" :dataForm="row"--> +<!-- v-model="row.files"/>--> + </template> + </el-table-column> </el-table> - <div class="icon-container" @click="addConfigItemWarehouseRow()"> + <div class="icon-container"> + <el-dropdown @command="handleCommand"> + <span class="el-dropdown-link"> + <i class="el-icon-plus"></i> + </span> + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item v-for="item in menuOptions" :key="item.command" :command="item.command"> + {{ item.name }} + </el-dropdown-item> + </el-dropdown-menu> + </el-dropdown> + <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� --> - <i class="el-icon-plus"></i> +<!-- <i class="el-icon-plus"></i>--> </div> </div> </div> @@ -161,7 +179,7 @@ </div> <div style="width: calc(100% - 120px)" class="el-border-left"> <el-form-item class="el-wt-form-item-margin" label-width="20px" style="width: 85%"> - <zt-dict :disabled="stepMarker=='wplz_bmsh'" v-model="dataForm.configItemWarehouse.approvalOpinions" dict="is_pass" :radio="true" + <zt-dict :disabled="stepMarker!=='wplz_bmsh'" v-model="dataForm.configItemWarehouse.approvalOpinions" dict="is_pass" :radio="true" clearable></zt-dict> </el-form-item> <el-form-item label-width="80%" label="绛惧瓧锛�" style="width: 65%"> @@ -179,6 +197,7 @@ <div style="width: calc(100% - 120px)" class="el-border-left"> <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px"> <el-input v-if="stepMarker=='wplz_cmcz'" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" v-model="dataForm.configItemWarehouse.projectCmOperations"></el-input> + <span v-else>{{dataForm.configItemWarehouse.projectCmOperations}}</span> </el-form-item> <el-form-item label-width="80%" label="鎿嶄綔浜猴細" style="width: 65%"> <span>{{dataForm.configItemWarehouse.operator}}</span> @@ -210,6 +229,13 @@ disabled:true, stepMarker: '', title: '鏌ョ湅', + menuOptions: [ + { command: 'a', name: '杞欢娴嬭瘯濮旀墭鍗�' }, + { command: 'b', name: '杞欢闇�姹傝鏍艰鏄�' }, + { command: 'c', name: '杞欢璁捐璇存槑' }, + { command: 'd', name: '杞欢鐮斿埗浠诲姟涔�' }, + { command: 'e', name: '鍏朵粬' } + ], dataForm: { id: '', configItemWarehouse:{ @@ -275,8 +301,21 @@ } console.log(this.dataForm.id,this.dataForm.projectId,'params params') }, - addConfigItemWarehouseRow(){ - this.dataForm.configItemList.push({}) + // addConfigItemWarehouseRow(){ + // this.dataForm.configItemList.push({}) + // this.$nextTick(()=>{ + // const tableBody=this.$refs.tableConfigItemList.$el.querySelector('.el-table__body-wrapper') + // tableBody.scrollTop = tableBody.scrollHeight; + // }) + // }, + handleCommand(command){ + const selectedItem = this.menuOptions.find(item => item.command === command); + if (selectedItem.command === 'e') { + this.dataForm.configItemList.push({}) + }else if(selectedItem){ + this.dataForm.configItemList.push({itemName:selectedItem.name}) + } + this.$nextTick(()=>{ const tableBody=this.$refs.tableConfigItemList.$el.querySelector('.el-table__body-wrapper') tableBody.scrollTop = tableBody.scrollHeight; diff --git a/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue index 2bd1f40..299b3d8 100644 --- a/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue +++ b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue @@ -1,71 +1,172 @@ <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> + <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.testCheckOrder.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.softwareName" placeholder="椤圭洰鏍囪瘑"></el-input> + </el-form-item> + <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="marginTopAndMarginBottom3" label="妫�鏌ヤ汉" style="width: 49%"> + <el-input v-model="dataForm.project.softwareIdentity" placeholder="妫�鏌ヤ汉"></el-input> + </el-form-item> + <el-form-item class="marginTopAndMarginBottom3" label="妫�鏌ユ椂闂�" style="width: 49%"> + <el-input v-model="dataForm.project.isContract" placeholder="妫�鏌ユ椂闂�"></el-input> + </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">娴嬭瘯璁″垝锛�</div> + <div class="table-container"> + <el-table ref="tableCirculatOrderList" class="el-software el-margin-top-bot" border + :data="dataForm.technicalList" + 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="infoName" min-width="180" label="涓昏妫�鏌ュ唴瀹�"> + <template v-slot="{ row }"> + <el-input v-model="row.name" placeholder="涓昏妫�鏌ュ唴瀹�"></el-input> + </template> + </el-table-column> + <el-table-column prop="identify" align="center" width="150" label="妫�鏌ョ粨鏋�"> + <template v-slot="{ row }"> + <zt-dict v-model="row.identify" dict="is_or_not" :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-model="row.remark" placeholder="澶囨敞"></el-input> + </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 type="textarea" + :rows="3" v-model="dataForm.testCheckOrder.itemOther" placeholder="闂鎻忚堪..."></el-input> + </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 type="textarea" + :rows="3" v-model="dataForm.testCheckOrder.itemOther" placeholder="闂澶勭悊..."></el-input> + </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;"> + <el-input v-model="dataForm.testCheckOrder.itemOther" placeholder="澶勭悊浜�"></el-input> + </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"> + <el-input v-model="dataForm.testCheckOrder.itemOther" placeholder="楠岃瘉浜�"></el-input> + </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 { + props:{ + pageCode: { + type: String, + default: '' + }, + }, data() { return { dataForm: { id: '', projectId: '', - code: '', - softwareidentity: '', - softwarename: '', - examiner: '', - examDate: '', - problemDescription: '', - problemProcess: '', - processor: '', - processorId: '', - processDate: '', - verifier: '', - verifierId: '', - verifyDate: '', - year: '' + project:{ + softwareIdentity:'', + softwareName:'', + softwareType:'', + isContract:'', + }, + testCheckOrder:{ + code: '', + examiner: '', + examDate: '', + problemDescription: '', + problemProcess: '', + processor: '', + processorId: '', + processDate: '', + verifier: '', + verifierId: '', + verifyDate: '', + year: '' + }, + testAgencyInfo:{ + agencyName:'' + } } } }, methods: { + init(id, row) { + console.log(id,row,'杞欢娴嬭瘯璁″垝妫�鏌ュ崟') + if (id) { + this.dataForm.id = id + } else { + this.dataForm.id = row.id + } + if(row.projectId){ + this.dataForm.projectId =row.projectId + } + + // this.dataForm.disabled + this.getInfo() + console.log(this.dataForm.id, this.dataForm.projectId, this.stepMarker, 'this.dataForm.id, this.dataForm.projectId,this.stepMarker') + }, // 鑾峰彇淇℃伅 async getInfo() { let res = await this.$http.get(`/testCheckOrder/TestCheckOrder/${this.dataForm.id}`) @@ -86,3 +187,40 @@ } } </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> diff --git a/web/src/views/modules/testCheckOrder/TestCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestCheckOrder.vue index 6356569..3f35ac5 100644 --- a/web/src/views/modules/testCheckOrder/TestCheckOrder.vue +++ b/web/src/views/modules/testCheckOrder/TestCheckOrder.vue @@ -11,7 +11,7 @@ </el-form-item> <el-form-item> <zt-button type="query" @click="table.query()"/> - <zt-button type="add" perm="testCheckOrder:add" @click="table.editHandle()"/> + <zt-button type="primary" class="el-icon-edit" perm="project:add" @click="add()">鏂板</zt-button> <zt-button type="delete" perm="testCheckOrder:delete" @click="table.deleteHandle()"/> </el-form-item> </el-form> @@ -23,7 +23,12 @@ <zt-table-column-handle :table="table" edit-perm="testCheckOrder:update" delete-perm="testCheckOrder::delete"/> </el-table> <!-- 寮圭獥, 鏂板 / 淇敼 --> - <add-or-update @refreshDataList="table.query"/> + <add-or-update ref="addOrUpdate" @refreshDataList="table.query"/> + <ProjectSelect ref="projectSelect" + @refreshDataList="table.query" + @setProjectInfo="openAddWin"> + </ProjectSelect> + <Preview ref="view" :pageMarkerfun="SoftwareTestOrder"></Preview> </zt-table-wraper> </div> </el-card> @@ -31,6 +36,8 @@ <script> import AddOrUpdate from './TestCheckOrder-AddOrUpdate' + import ProjectSelect from "../project/Project-select.vue" + import Preview from '@/views/pages/view' export default { props: { pageCode: { @@ -52,7 +59,21 @@ } }, components: { - AddOrUpdate + AddOrUpdate, + ProjectSelect, + Preview + }, + methods:{ + add() { + this.$refs.projectSelect.$refs.dialog.init("test_check_order") + }, + openAddWin(row) { + console.log(row.id, 'row.id') + this.$refs.addOrUpdate.$refs.dialog.init(null, {id: null, projectId: row.id}) + }, + preview(row){ + this.$refs.view.openAccessoryFormatSingle(row) + } } } </script> diff --git a/web/src/views/modules/testCheckOrder/TestExplainCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestExplainCheckOrder.vue index c9fb553..76fc0f2 100644 --- a/web/src/views/modules/testCheckOrder/TestExplainCheckOrder.vue +++ b/web/src/views/modules/testCheckOrder/TestExplainCheckOrder.vue @@ -1,5 +1,5 @@ <template> - <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead" :isShow="isShow"/> + <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead"/> </template> <script> @@ -9,7 +9,7 @@ data() { return { pageCode: 'explain', - pageRead: 'no' + pageRead: 'no', } }, components: { diff --git a/web/src/views/modules/testCheckOrder/TestPlanCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestPlanCheckOrder.vue index d013e21..ea39f9e 100644 --- a/web/src/views/modules/testCheckOrder/TestPlanCheckOrder.vue +++ b/web/src/views/modules/testCheckOrder/TestPlanCheckOrder.vue @@ -1,5 +1,5 @@ <template> - <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead" :isShow="isShow"/> + <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead"/> </template> <script> diff --git a/web/src/views/modules/testCheckOrder/TestRecordCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestRecordCheckOrder.vue index 33991db..14e8e82 100644 --- a/web/src/views/modules/testCheckOrder/TestRecordCheckOrder.vue +++ b/web/src/views/modules/testCheckOrder/TestRecordCheckOrder.vue @@ -1,5 +1,5 @@ <template> - <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead" :isShow="isShow"/> + <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead" /> </template> <script> diff --git a/web/src/views/modules/testCheckOrder/TestReportCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestReportCheckOrder.vue index 6fdf44b..5cba2b8 100644 --- a/web/src/views/modules/testCheckOrder/TestReportCheckOrder.vue +++ b/web/src/views/modules/testCheckOrder/TestReportCheckOrder.vue @@ -1,5 +1,5 @@ <template> - <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead" :isShow="isShow"/> + <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead"/> </template> <script> @@ -9,7 +9,8 @@ data() { return { pageCode: 'report', - pageRead: 'no' + pageRead: 'no', + isShow:'', } }, components: { -- Gitblit v1.9.1