| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419 |
- <template>
- <ele-modal
- :title="dialogTitle"
- :visible.sync="visible"
- :before-close="handleClose"
- width="80%"
- custom-class="ele-dialog-form long-dialog-form"
- :centered="true"
- :close-on-click-modal="false"
- :maxable="true"
- append-to-body
- >
- <el-form label-width="110px" :model="formData">
- <el-row>
- <el-col :span="8">
- <el-form-item
- label="规则名称"
- prop="name"
- :rules="{
- required: true,
- message: '请选择规则名称',
- trigger: 'change'
- }"
- >
- <!-- <el-input v-model="formData.code" placeholder="请输入" /> -->
- <el-select
- style="width: 100%"
- v-model="formData.name"
- placeholder="请选择"
- @change="changeList"
- >
- <el-option
- v-for="(item, index) in listData"
- :key="index"
- :label="item.name"
- :value="index"
- >
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item
- label="记录表名称"
- prop="biaoName"
- :rules="{
- required: true,
- message: '请输入记录表名称',
- trigger: 'blur'
- }"
- >
- <el-input v-model="formData.biaoName" placeholder="请输入" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="记录表编码" prop="biaoCode">
- <el-input
- disabled
- v-model="formData.biaoCode"
- placeholder="请输入"
- />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="8">
- <el-form-item label="车间区域" prop="quyu">
- <el-input v-model="formData.quyu" placeholder="请选择" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="工单" prop="workOrder">
- <el-input
- v-model="formData.workOrder"
- placeholder="请选择"
- @click.native="selectWork"
- />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="工序名称" prop="gongxu">
- <el-input v-model="formData.gongxu" placeholder="请输入" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="8">
- <el-form-item label="产品名称" prop="chanp">
- <el-input v-model="formData.chanp" placeholder="请输入" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="产品批号" prop="branNo">
- <el-input v-model="formData.branNo" placeholder="请输入" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="产品型号" prop="xingh">
- <el-input v-model="formData.xingh" placeholder="请输入" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="8">
- <el-form-item label="产品规格" prop="xingh">
- <el-input v-model="formData.xingh" placeholder="请输入" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item
- label="清场完成时间"
- prop="time"
- :rules="{
- required: true,
- message: '请输入记录表名称',
- trigger: 'blur'
- }"
- >
- <el-date-picker
- style="width: 100%"
- v-model="formData.time"
- type="datetime"
- placeholder="选择"
- value-format="yyyy-MM-dd HH:mm:ss"
- ></el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item
- label="清场有效期"
- prop="yxq"
- :rules="{
- required: true,
- message: '请输入记录表名称',
- trigger: 'blur'
- }"
- >
- <el-date-picker
- style="width: 100%"
- v-model="formData.yxq"
- type="datetime"
- placeholder="选择"
- value-format="yyyy-MM-dd HH:mm:ss"
- ></el-date-picker>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="8">
- <el-form-item
- label="清场检查结论"
- prop="jielun"
- :rules="{
- required: true,
- message: '请选择清场检查结论',
- trigger: 'change'
- }"
- class="table_list"
- >
- <el-radio-group v-model="formData.jielun">
- <el-radio :label="1">合格</el-radio>
- <el-radio :label="2">不合格</el-radio>
- </el-radio-group>
- </el-form-item>
- </el-col>
- </el-row>
- <ele-pro-table
- ref="table"
- :columns="columns"
- :datasource="ruleItems"
- :toolkit="[]"
- :need-page="false"
- row-key="id"
- class="table_list"
- >
- <template v-slot:situation="{ row }">
- <el-radio-group v-model="row.situation">
- <el-radio :label="2">否</el-radio>
- <el-radio :label="1">是</el-radio>
- </el-radio-group>
- </template>
- <template v-slot:toolList="{ row }">
- <div
- style="display: inline-block"
- v-for="(item, idx) in row.toolList"
- :key="idx"
- >{{ item.name }}
- <span v-if="row.toolList && idx != row.toolList.length - 1"
- >,
- </span>
- </div>
- </template>
- <template v-slot:cleaners="{ row, $index }">
- <el-input
- placeholder="请选择"
- v-model="row.cleaners"
- @click.native="cleanersOpen(row, $index)"
- ></el-input>
- </template>
- <template v-slot:result="{ row }">
- <el-radio-group v-model="row.result">
- <el-radio :label="2">不合格</el-radio>
- <el-radio :label="1">合格</el-radio>
- </el-radio-group>
- </template>
- <template v-slot:describe="{ row }">
- <el-input
- type="textarea"
- :rows="2"
- placeholder="请输入内容"
- v-model="row.describe"
- >
- </el-input>
- </template>
- </ele-pro-table>
- </el-form>
- <template v-slot:footer>
- <el-button @click="handleClose">取消</el-button>
- <el-button type="primary" @click="preserve"> 保存 </el-button>
- </template>
- <Select ref="selectRef" @setPersonnel="setPersonnel" />
- </ele-modal>
- </template>
- <script>
- import Select from './select.vue';
- export default {
- components: { Select },
- data() {
- return {
- visible: false,
- dialogTitle: '新增',
- formData: {},
- listData: [
- {
- ruleItems: [
- {
- inspectionCode: 'ZJX20250808285',
- name: '顶棚清洁干净',
- textType: '8',
- defaultValue: '',
- maxValue: '',
- minValue: '',
- unitName: '',
- status: 1,
- inspectionStandard: '',
- unit: '',
- symbol: '',
- inspectionRemark: '',
- toolList: [],
- postscriptList: [],
- toolRemoveIds: [],
- postscriptRemoveIds: []
- },
- {
- inspectionCode: 'ZJX20250808286',
- name: '墙面清洁干净',
- textType: '8',
- defaultValue: '',
- maxValue: '',
- minValue: '',
- unitName: '',
- status: 1,
- inspectionStandard: '',
- unit: '',
- symbol: '',
- inspectionRemark: '就',
- toolList: [],
- postscriptList: [
- {
- sort: 1,
- content: '注意1'
- },
- {
- sort: 2,
- content: '注意2'
- },
- {
- sort: 3,
- content: '注意3'
- }
- ],
- toolRemoveIds: [],
- postscriptRemoveIds: []
- },
- {
- inspectionCode: 'ZJX20250808288',
- name: '出风口清洁干净',
- textType: '8',
- defaultValue: '',
- maxValue: '',
- minValue: '',
- unitName: '',
- status: 1,
- inspectionStandard: '',
- unit: '',
- symbol: '',
- inspectionRemark: '',
- toolList: [],
- postscriptList: [],
- toolRemoveIds: [],
- postscriptRemoveIds: []
- }
- ],
- status: 1,
- classification: 1,
- name: '清场清洁记录'
- }
- ],
- ruleItems: []
- };
- },
- computed: {
- columns() {
- return [
- {
- prop: 'name',
- label: '清场项目',
- align: 'center',
- minWidth: 130
- },
- {
- prop: 'toolList',
- slot: 'toolList',
- label: '清洁工具',
- align: 'center',
- minWidth: 150
- },
- {
- prop: 'situation',
- slot: 'situation',
- label: '清洁情况',
- align: 'center',
- minWidth: 130
- },
- {
- prop: 'cleaners',
- slot: 'cleaners',
- label: '清洁人',
- align: 'center',
- minWidth: 130
- },
- {
- prop: 'result',
- slot: 'result',
- label: '检查结果',
- align: 'center',
- minWidth: 160
- },
- {
- prop: 'describe',
- slot: 'describe',
- label: '异常描述',
- align: 'center',
- minWidth: 300
- }
- ];
- }
- },
- methods: {
- handleClose() {
- this.visible = false;
- },
- open() {
- this.visible = true;
- },
- cleanersOpen(row, index) {
- this.$refs.selectRef.open(row, index);
- },
- setPersonnel(name, index) {
- console.log(name, 'name');
- console.log(index, 'index');
- this.$set(this.ruleItems[index], 'cleaners', name);
- },
- // 选择工单
- selectWork() {},
- // 保存
- preserve() {},
- changeList(e) {
- this.ruleItems = this.listData[e].ruleItems;
- }
- }
- };
- </script>
- <style scoped lang="scss">
- ::v-deep .table_list {
- .el-radio__inner {
- border-radius: 2px; /* 改为方形,多选框的圆角通常很小 */
- width: 14px;
- height: 14px;
- }
- /* 选中状态 */
- .el-radio__input.is-checked .el-radio__inner {
- background: #409eff; /* 选中时的背景色 */
- border-color: #409eff;
- }
- /* 选中状态的内层(原本是圆形,现在改为打勾图标) */
- .el-radio__inner::after {
- width: 4px;
- height: 8px;
- border: 2px solid #fff;
- border-left: 0;
- border-top: 0;
- left: 3px;
- top: 1px;
- transform: rotate(45deg) scaleY(1);
- background: transparent; /* 去掉背景 */
- border-radius: 0;
- }
- .el-radio__input.is-disabled.is-checked .el-radio__inner::after {
- background-color: none !important;
- }
- }
- </style>
|