| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444 |
- <template>
- <ele-modal
- :title="title"
- :visible.sync="visible"
- :before-close="handleClose"
- :close-on-click-modal="false"
- :close-on-press-escape="false"
- append-to-body
- width="80%"
- :maxable="true"
- >
- <el-form ref="form1" :model="formData" :rules="rules" label-width="120px">
- <el-form-item label="处置方式:" prop="disposeType">
- <el-select
- v-model="formData.disposeType"
- placeholder="请选择"
- style="width: 100%"
- >
- <el-option
- v-for="item in disposeList"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <template v-if="formData.disposeType == 6">
- <el-row>
- <el-col :span="24">
- <el-form-item label="留样日期:" prop="sampleDate" align="center">
- <el-date-picker
- class="w100"
- v-model="formData.sampleDate"
- type="date"
- value-format="yyyy-MM-dd"
- placeholder="请输入"
- ></el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="6"> </el-col>
- </el-row>
- <el-row style="margin-top: 12px">
- <el-col :span="24">
- <el-form-item
- label="留样条件:"
- prop="sampleCondition"
- align="center"
- >
- <el-input
- v-model="formData.sampleCondition"
- placeholder="请输入"
- style="width: 100%"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row style="margin-top: 12px">
- <el-col :span="24">
- <el-form-item
- label="生产商/受托生产:"
- prop="producerManufacturer"
- align="center"
- >
- <el-input
- v-model="formData.producerManufacturer"
- placeholder="请输入"
- style="width: 100%"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row style="margin-top: 12px">
- <el-col :span="24">
- <el-form-item label="留样地点:" prop="samplePlace" align="center">
- <el-input
- type="textarea"
- v-model="formData.samplePlace"
- placeholder="请输入"
- style="width: 100%"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row style="margin-top: 12px">
- <el-col :span="24">
- <el-form-item label="留样备注:" prop="sampleRemark" align="center">
- <el-input
- type="textarea"
- v-model="formData.sampleRemark"
- placeholder="请输入"
- style="width: 100%"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row style="margin-top: 12px">
- <el-col :span="24"> </el-col>
- </el-row>
- </template>
- <template v-if="this.formData.disposeType !== 8">
- <el-form-item label="入库仓库:" prop="depotId" align="center">
- <el-select style="width: 100%" v-model="formData.depotId">
- <el-option
- v-for="item in warehouseList"
- :key="item.id"
- :value="item.id"
- :label="item.name"
- @click.native="chooseWarehouse(item)"
- ></el-option>
- </el-select>
- </el-form-item>
- </template>
- <!-- <el-row>
- <el-col :span="6">
- <el-form-item label="处置方式" prop="disposalStatus" align="center">
- <el-select
- v-model="formData.disposalStatus"
- placeholder="请选择"
- style="width: 100%"
- v-if="qualityType == 1"
- clearable
- >
- <el-option
- v-for="item in disposalStatusListType"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
- <el-select
- v-model="formData.disposalStatus"
- placeholder="请选择"
- style="width: 100%"
- v-else
- clearable
- >
- <el-option
- v-for="item in disposalStatusList"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6" v-if="formData.disposalStatus == 3">
- <el-form-item
- label="处置仓库"
- prop="disposeWarehouseId"
- align="center"
- >
- <el-select
- v-model="formData.disposeWarehouseId"
- placeholder="请选择"
- style="width: 100%"
- clearable
- @change="handleWarehouseChange"
- filterable
- >
- <el-option
- v-for="item in warehouseList"
- :key="item.disposeWarehouseId"
- :label="item.disposeWarehouseName"
- :value="item.disposeWarehouseId"
- >
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="留样日期" prop="sampleDate" align="center">
- <el-date-picker
- class="w100"
- v-model="formData.sampleDate"
- type="date"
- value-format="yyyy-MM-dd"
- placeholder="请输入"
- ></el-date-picker>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="处置时间:" prop="disposeTime">
- <el-date-picker
- class="w100"
- v-model="formData.disposeTime"
- type="date"
- value-format="yyyy-MM-dd"
- placeholder="请输入"
- ></el-date-picker>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row style="margin-top: 12px">
- <el-col :span="24">
- <el-form-item label="留样条件" prop="sampleCondition" align="center">
- <el-input
- v-model="formData.sampleCondition"
- placeholder="请输入"
- style="width: 100%"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row style="margin-top: 12px">
- <el-col :span="24">
- <el-form-item
- label="生产商/受托生产"
- prop="producerManufacturer"
- align="center"
- >
- <el-input
- v-model="formData.producerManufacturer"
- placeholder="请输入"
- style="width: 100%"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row style="margin-top: 12px">
- <el-col :span="24">
- <el-form-item label="留样地点" prop="samplePlace" align="center">
- <el-input
- type="textarea"
- v-model="formData.samplePlace"
- placeholder="请输入"
- style="width: 100%"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row style="margin-top: 12px">
- <el-col :span="24">
- <el-form-item label="留样备注" prop="sampleRemark" align="center">
- <el-input
- type="textarea"
- v-model="formData.sampleRemark"
- placeholder="请输入"
- style="width: 100%"
- ></el-input>
- </el-form-item>
- </el-col>
- </el-row> -->
- </el-form>
- <template v-slot:footer>
- <el-button @click="handleClose">取消</el-button>
- <el-button type="primary" @click="handleConfirm"> 确认 </el-button>
- </template>
- </ele-modal>
- </template>
- <script>
- // import { warehouseList } from '@/api/inspectionWork';
- import { getWarehouseList } from '@/api/samplemanagement';
- export default {
- components: {},
- data() {
- return {
- allList: [
- { value: 1, label: '返工' },
- { value: 2, label: '返修' },
- { value: 3, label: '报废' },
- { value: 4, label: '降级使用' },
- { value: 5, label: '让步接收' },
- { value: 6, label: '留样' },
- { value: 7, label: '消耗' },
- { value: 8, label: '回用/归批' },
- { value: 9, label: '转试销' },
- { value: 10, label: '退货' }
- ],
- title: '',
- visible: false,
- rowIndex: 0,
- type: '',
- formData: {
- disposeType: '',
- sampleDate: '',
- sampleCondition: '',
- producerManufacturer: '',
- samplePlace: '',
- sampleRemark: '',
- depotId: '',
- depotName: ''
- },
- qualityType: '',
- warehouseList: [],
- // 表单验证规则
- rules: {
- disposeType: [
- {
- required: true,
- message: '请选择处置方式',
- trigger: 'blur'
- }
- ],
- depotId: [
- { required: true, message: '请选择仓库', trigger: 'change' }
- ]
- },
- disposalStatusList: [
- {
- value: 1,
- label: '返工'
- },
- {
- value: 2,
- label: '返修'
- },
- {
- value: 3,
- label: '报废'
- },
- {
- value: 4,
- label: '降级使用'
- },
- {
- value: 5,
- label: '让步接收'
- },
- {
- value: 6,
- label: '留样'
- },
- {
- value: 7,
- label: '消耗'
- },
- {
- value: 8,
- label: '回用'
- },
- {
- value: 9,
- label: '转试销'
- }
- ],
- disposalStatusListType: [
- {
- value: 5,
- label: '让步接收'
- },
- {
- value: 9,
- label: '退货'
- }
- ]
- };
- },
- computed: {
- disposeList() {
- if (this.$route.query.qualityType == 1) {
- return this.allList.filter((item) => [5, 10].includes(item.value));
- }
- if (
- this.$route.query.qualityType == 2 ||
- this.$route.query.qualityType == 3
- ) {
- return this.allList.filter(
- (item) => item.value !== 8 && item.value !== 10
- );
- } else {
- return this.allList;
- }
- }
- },
- async created() {
- // this.getWarehouseList();
- this.warehouseList = await getWarehouseList();
- },
- methods: {
- handleWarehouseChange(val) {
- this.warehouseList.findIndex((item) => {
- if (item.disposeWarehouseId == val) {
- this.formData.disposeWarehouseName = item.disposeWarehouseName;
- }
- });
- },
- // async getWarehouseList() {
- // let res = await warehouseList({});
- // this.warehouseList = res.map((item) => {
- // item.disposeWarehouseName = item.name;
- // item.disposeWarehouseId = item.id;
- // return {
- // ...item
- // };
- // });
- // },
- async openDispose(index, row, type, qualityType) {
- if (index != null) {
- this.formData = JSON.parse(JSON.stringify(row));
- } else {
- this.formData = {};
- }
- console.log(this.formData);
- this.visible = true;
- this.rowIndex = index;
- this.type = type;
- this.qualityType = qualityType;
- },
- handleClose() {
- this.visible = false;
- },
- handleConfirm() {
- this.$refs.form1.validate((valid) => {
- if (valid) {
- this.$emit('handleDisposeConfirm', this.formData, this.rowIndex);
- this.visible = false;
- }
- });
- },
- chooseWarehouse(item) {
- console.log(item);
- this.formData.depotId = item.id;
- this.formData.depotName = item.name;
- }
- },
- watch: {
- 'formData.disposeType': {
- handler(newVal, oldVal) {
- this.formData.sampleCondition = '';
- this.formData.sampleDate = '';
- this.formData.samplePlace = '';
- this.formData.sampleRemark = '';
- this.formData.producerManufacturer = '';
- this.formData.depotId = '';
- this.formData.depotName = '';
- },
- // immediate: true
- }
- }
- };
- </script>
|