web/src/assets/css/custom.css | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
web/src/components/config-uploader/src/config-uploader.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
web/src/views/modules/testCheckOrder/TestCheckOrder.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
web/src/views/modules/testCheckOrder/TestExplainCheckOrder.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
web/src/views/modules/testCheckOrder/TestPlanCheckOrder.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
web/src/views/modules/testCheckOrder/TestRecordCheckOrder.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
web/src/views/modules/testCheckOrder/TestReportCheckOrder.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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; } 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)') 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; 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> 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> 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: { 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> 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> 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: {