From 9251aa2b02fa8bbad8cfba74d3b2d7ddf485a117 Mon Sep 17 00:00:00 2001 From: pyt <626651354@qq.com> Date: 星期四, 10 四月 2025 10:27:02 +0800 Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory --- src/views/dataManagement/sampleManage/addSample.vue | 379 +++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 259 insertions(+), 120 deletions(-) diff --git a/src/views/dataManagement/sampleManage/addSample.vue b/src/views/dataManagement/sampleManage/addSample.vue index 3ac69bc..158722f 100644 --- a/src/views/dataManagement/sampleManage/addSample.vue +++ b/src/views/dataManagement/sampleManage/addSample.vue @@ -32,6 +32,7 @@ <span>基础信息</span> </div> <el-form + v-if="!isExperimenter" ref="form" :model="form" :rules="rules" @@ -39,63 +40,144 @@ label-position="top" > <el-form-item label="取样单编号" prop="sampleCode"> - <el-input - v-model="form.sampleCode" + <el-input + v-model="form.sampleCode" :disabled="!isExperimenter" - :placeholder="isExperimenter ? '请输入取样单编号' : '自动生成'" + :placeholder="isExperimenter ? '请输入取样单编号' : '自动生成'" /> </el-form-item> </el-form> + <div v-else class="number">取样单编号:213421241</div> <div class="header-title-left" style="margin-top: 38px"> <img src="@/assets/public/headercard.png" /> <span>取样操作记录</span> - <el-button + <el-button v-if="isEngineer" - type="primary" - class="el-icon-plus" + type="primary" + class="el-icon-plus" @click="showAddTime = true" - > + > 新增工艺时间 </el-button> - <el-button - type="primary" + <el-button + type="primary" class="el-icon-plus" @click="showAdditives = !showAdditives" - > - {{ showAdditives ? '收起辅料详情' : '展开辅料详情' }} + > + {{ showAdditives ? "收起辅料详情" : "展开辅料详情" }} </el-button> </div> <Table :data="sampleData" :total="sampleTotal" :height="null"> <template> <el-table-column prop="index" label="序号" width="80"></el-table-column> - <el-table-column prop="processTime" label="工艺时间" width="150"></el-table-column> - <el-table-column prop="sampleName" label="取样名称" width="150"></el-table-column> - <el-table-column prop="sampleCode" label="取样样品编号" width="150"></el-table-column> - <el-table-column prop="temperature" label="温度" width="150"></el-table-column> + <el-table-column + prop="processTime" + label="工艺时间" + width="150" + ></el-table-column> + <el-table-column + prop="sampleName" + label="取样名称" + width="150" + ></el-table-column> + <el-table-column + prop="sampleCode" + label="取样样品编号" + width="150" + ></el-table-column> + <el-table-column + prop="temperature" + label="温度" + width="150" + ></el-table-column> <el-table-column prop="ph" label="PH" width="150"></el-table-column> - <el-table-column prop="waterAmount" label="加水量" width="150"></el-table-column> + <el-table-column + prop="waterAmount" + label="加水量" + width="150" + ></el-table-column> <template v-if="showAdditives"> - <el-table-column prop="additive1" label="加辅1" width="150" ></el-table-column> - <el-table-column prop="additive2" label="加辅2" width="150"></el-table-column> - <el-table-column prop="additive3" label="加辅3" width="150"></el-table-column> - <el-table-column prop="additive4" label="加辅4" width="150"></el-table-column> - <el-table-column prop="additive5" label="加辅5" width="150"></el-table-column> - <el-table-column prop="additive6" label="加辅6" width="150"></el-table-column> - <el-table-column prop="additive7" label="加辅7" width="150"></el-table-column> - <el-table-column prop="additive8" label="加辅8" width="150"></el-table-column> - <el-table-column prop="additive9" label="加辅9" width="150"></el-table-column> - <el-table-column prop="additive10" label="加辅10" width="150"></el-table-column> + <el-table-column + prop="additive1" + label="加辅1" + width="150" + ></el-table-column> + <el-table-column + prop="additive2" + label="加辅2" + width="150" + ></el-table-column> + <el-table-column + prop="additive3" + label="加辅3" + width="150" + ></el-table-column> + <el-table-column + prop="additive4" + label="加辅4" + width="150" + ></el-table-column> + <el-table-column + prop="additive5" + label="加辅5" + width="150" + ></el-table-column> + <el-table-column + prop="additive6" + label="加辅6" + width="150" + ></el-table-column> + <el-table-column + prop="additive7" + label="加辅7" + width="150" + ></el-table-column> + <el-table-column + prop="additive8" + label="加辅8" + width="150" + ></el-table-column> + <el-table-column + prop="additive9" + label="加辅9" + width="150" + ></el-table-column> + <el-table-column + prop="additive10" + label="加辅10" + width="150" + ></el-table-column> </template> - <el-table-column prop="sampleAmount" label="取样量" width="150"></el-table-column> - <el-table-column prop="sampleTime" label="取样时间" width="150"></el-table-column> - <el-table-column prop="remark" label="拍照" width="150"></el-table-column> - <el-table-column prop="operator" label="操作人员" width="150"></el-table-column> - <el-table-column v-if="isExperimenter" fixed="right" label="操作" width="150"> + <el-table-column + prop="sampleAmount" + label="取样量" + width="150" + ></el-table-column> + <el-table-column + prop="sampleTime" + label="取样时间" + width="150" + ></el-table-column> + <el-table-column + prop="remark" + label="拍照" + width="150" + ></el-table-column> + <el-table-column + prop="operator" + label="操作人员" + width="150" + ></el-table-column> + <el-table-column + v-if="isExperimenter" + fixed="right" + label="操作" + width="150" + > <template slot-scope="scope"> - <el-button - type="text" - @click="handleEdit(scope.$index, scope.row)" - >编辑</el-button> + <el-button type="text" @click="handleEdit(scope.$index, scope.row)" + >编辑</el-button + > </template> </el-table-column> </template> @@ -113,7 +195,7 @@ </el-form> </div> <div class="add-project-footer"> - <el-button type="primary" class="save-btn">保存</el-button> + <el-button type="primary" class="save-btn" @click="handleSave">保存</el-button> <el-button>存草稿</el-button> </div> <experimentalScheduling :show="showScheduling" /> @@ -123,6 +205,12 @@ :data="currentSampleData" @submit="handleSampleSubmit" /> + <confirm-dialog + :visible.sync="showConfirmDialog" + :form-data="form" + :sample-data="sampleData" + @confirm="handleConfirm" + /> </Card> </template> @@ -130,13 +218,15 @@ import experimentalScheduling from "./components/experimental-scheduling.vue"; import addTime from "./components/addTime.vue"; import SampleDialog from "./components/sampleDialog.vue"; +import ConfirmDialog from './components/confirmDialog.vue'; export default { name: "AddConfirmationSheet", components: { experimentalScheduling, addTime, - SampleDialog + SampleDialog, + ConfirmDialog, }, props: {}, data() { @@ -145,6 +235,7 @@ showAddTime: false, showAdditives: true, showSampleDialog: false, + showConfirmDialog: false, currentSampleData: {}, currentEditIndex: -1, schedulingData: [], // 实验调度表格数据 @@ -152,63 +243,63 @@ sampleData: [ { index: 1, - processTime: '2h', - sampleName: '样品A', - sampleCode: 'SP001', - temperature: '25℃', - ph: '7.0', - waterAmount: '500ml', - additive1: '10g', - additive2: '5g', - additive3: '3g', - additive4: '', - additive5: '', - additive6: '', - additive7: '', - additive8: '', - additive9: '', - additive10: '', - sampleAmount: '100ml', - sampleTime: '2024-03-20 10:00:00', - remark: '', - operator: '张三' + processTime: "2h", + sampleName: "样品A", + sampleCode: "SP001", + temperature: "25℃", + ph: "7.0", + waterAmount: "500ml", + additive1: "10g", + additive2: "5g", + additive3: "3g", + additive4: "", + additive5: "", + additive6: "", + additive7: "", + additive8: "", + additive9: "", + additive10: "", + sampleAmount: "100ml", + sampleTime: "2024-03-20 10:00:00", + remark: "", + operator: "张三", }, { index: 2, - processTime: '4min', - sampleName: '样品B', - sampleCode: 'SP002', - temperature: '30℃', - ph: '6.5', - waterAmount: '300ml', - additive1: '8g', - additive2: '4g', - additive3: '', - additive4: '', - additive5: '', - additive6: '', - additive7: '', - additive8: '', - additive9: '', - additive10: '', - sampleAmount: '50ml', - sampleTime: '2024-03-20 10:30:00', - remark: '', - operator: '李四' - } + processTime: "4min", + sampleName: "样品B", + sampleCode: "SP002", + temperature: "30℃", + ph: "6.5", + waterAmount: "300ml", + additive1: "8g", + additive2: "4g", + additive3: "", + additive4: "", + additive5: "", + additive6: "", + additive7: "", + additive8: "", + additive9: "", + additive10: "", + sampleAmount: "50ml", + sampleTime: "2024-03-20 10:30:00", + remark: "", + operator: "李四", + }, ], sampleTotal: 2, form: { - sampleCode: '', - remark: '', + sampleCode: "", + remark: "", }, rules: { sampleCode: [ - { required: true, message: '请输入取样单编号', trigger: 'blur' } + { required: true, message: "请输入取样单编号", trigger: "blur" }, ], }, menu: [], - userRole: 'experimenter', // 用户角色,可以是 'engineer' 或 'experimenter' + userRole: "experimenter", // 用户角色,可以是 'engineer' 或 'experimenter' }; }, computed: { @@ -216,11 +307,11 @@ return this.$baseTableHeight(); }, isEngineer() { - return this.userRole === 'engineer'; + return this.userRole === "engineer"; }, isExperimenter() { - return this.userRole === 'experimenter'; - } + return this.userRole === "experimenter"; + }, }, watch: {}, created() {}, @@ -367,53 +458,71 @@ // 更新表格数据 this.$set(this.sampleData, this.currentEditIndex, { ...this.sampleData[this.currentEditIndex], - ...formData + ...formData, }); this.currentEditIndex = -1; } this.showSampleDialog = false; }, handleDelete(index, row) { - this.$confirm('确认删除该记录吗?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning' - }).then(() => { - this.sampleData.splice(index, 1); - // 重新计算序号 - this.sampleData.forEach((item, i) => { - item.index = i + 1; - }); - this.$message.success('删除成功'); - }).catch(() => {}); + this.$confirm("确认删除该记录吗?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }) + .then(() => { + this.sampleData.splice(index, 1); + // 重新计算序号 + this.sampleData.forEach((item, i) => { + item.index = i + 1; + }); + this.$message.success("删除成功"); + }) + .catch(() => {}); }, handleAddTime(processTime) { if (!this.isEngineer) return; const newRow = { index: this.sampleData.length + 1, processTime, - sampleName: '', - sampleCode: '', - temperature: '', - ph: '', - waterAmount: '', - additive1: '', - additive2: '', - additive3: '', - additive4: '', - additive5: '', - additive6: '', - additive7: '', - additive8: '', - additive9: '', - additive10: '', - sampleAmount: '', - sampleTime: '', - remark: '', - operator: '' + sampleName: "", + sampleCode: "", + temperature: "", + ph: "", + waterAmount: "", + additive1: "", + additive2: "", + additive3: "", + additive4: "", + additive5: "", + additive6: "", + additive7: "", + additive8: "", + additive9: "", + additive10: "", + sampleAmount: "", + sampleTime: "", + remark: "", + operator: "", }; this.sampleData.push(newRow); - this.$message.success('添加工艺时间成功'); + this.$message.success("添加工艺时间成功"); + }, + handleSave() { + if (this.isExperimenter) { + this.showConfirmDialog = true; + } else { + this.submitForm(); + } + }, + handleConfirm(signature) { + this.submitForm(signature); + }, + submitForm(signature = null) { + // 在这里实现表单提交逻辑 + console.log('提交表单数据', { signature }); + this.$message.success('保存成功'); + this.showConfirmDialog = false; }, }, }; @@ -461,6 +570,12 @@ .el-checkbox { display: flex; align-items: center; +} +.number{ +font-family: PingFangSC, PingFang SC; +font-weight: 400; +font-size: 14px; +color: rgba(0,0,0,0.88); } .row, @@ -576,13 +691,37 @@ .remark-section { margin-top: 20px; - + .el-form-item { width: 100%; - + .el-textarea { width: 100%; } } } + +.signature-section { + margin-top: 26px; +} + +.add-group { + padding-left: 25px; + margin-top: 14px; + display: flex; + align-items: center; + margin-bottom: 19px; + + div { + color: #f56c6c; + } + + span { + font-weight: 500; + font-size: 14px; + color: #222222; + line-height: 21px; + margin: 0 32px 0 8px; + } +} </style> \ No newline at end of file -- Gitblit v1.7.1