|
|
@@ -233,6 +233,7 @@
|
|
|
v-model="formData.car_type"
|
|
|
:placeholder="formData.own_id === 0 ? '请选择' : '自动带出'"
|
|
|
:disabled="formData.own_id === 0 ? false : true"
|
|
|
+ @on-change="handleChangeCarType"
|
|
|
>
|
|
|
<Option
|
|
|
v-for="item in carTypeList"
|
|
|
@@ -253,13 +254,22 @@
|
|
|
@on-change="handleSelectCarFile"
|
|
|
>
|
|
|
<Option
|
|
|
- v-for="item in carFilesList"
|
|
|
+ v-for="item in SureCarFilesList"
|
|
|
:key="item.id"
|
|
|
:value="item.id"
|
|
|
:label="item.name"
|
|
|
/>
|
|
|
</Select>
|
|
|
</FormItem>
|
|
|
+ <FormItem label="是否大型车" class="item">
|
|
|
+ <Input
|
|
|
+ disabled
|
|
|
+ placeholder="自动带出"
|
|
|
+ :value="
|
|
|
+ formData.is_big === 1 ? '是' : formData.is_big === 0 ? '否' : ''
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </FormItem>
|
|
|
<FormItem label="车主姓名" class="item">
|
|
|
<Select
|
|
|
transfer
|
|
|
@@ -323,136 +333,153 @@
|
|
|
</Form>
|
|
|
<div class="bdy">
|
|
|
<div class="title">施工单明细</div>
|
|
|
- <Form :label-width="100" class="form">
|
|
|
- <FormItem label="套餐编码">
|
|
|
- <Select
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- v-model="formData.sub.roll_film_combine_id"
|
|
|
- style="width: 200px"
|
|
|
- :disabled="!formData.company_id || !formData.car_file_id"
|
|
|
- @on-change="
|
|
|
- ($event) => (is_ready ? handleSelectCombine($event) : '')
|
|
|
- "
|
|
|
- multiple
|
|
|
- >
|
|
|
- <Option
|
|
|
- v-for="item in SureRollFilmCombineList"
|
|
|
- :key="item.id"
|
|
|
- :value="item.id"
|
|
|
- :label="item.code"
|
|
|
+ <div v-for="(ele, index) in formData.sub" :key="index">
|
|
|
+ <Form :label-width="100" class="form">
|
|
|
+ <FormItem label="套餐编码">
|
|
|
+ <Select
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ v-model="ele.roll_film_combine_id"
|
|
|
+ style="width: 200px"
|
|
|
+ :disabled="!formData.company_id || !formData.car_file_id"
|
|
|
+ @on-change="
|
|
|
+ ($event) =>
|
|
|
+ is_ready ? handleSelectCombine($event, index) : ''
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <Option
|
|
|
+ v-for="item in SureRollFilmCombineList"
|
|
|
+ :key="item.id"
|
|
|
+ :value="item.id"
|
|
|
+ :label="item.code"
|
|
|
+ />
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="套餐名称">
|
|
|
+ <Select
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ v-model="ele.roll_film_combine_id"
|
|
|
+ style="width: 200px"
|
|
|
+ :disabled="!formData.company_id || !formData.car_file_id"
|
|
|
+ >
|
|
|
+ <Option
|
|
|
+ v-for="item in SureRollFilmCombineList"
|
|
|
+ :key="item.id"
|
|
|
+ :disabled="item.roll_film_id ? false : true"
|
|
|
+ :value="item.id"
|
|
|
+ :label="item.title"
|
|
|
+ />
|
|
|
+ </Select>
|
|
|
+ </FormItem>
|
|
|
+ <FormItem label="数量">
|
|
|
+ <Input
|
|
|
+ v-model="ele.number"
|
|
|
+ clearable
|
|
|
+ placeholder="请输入"
|
|
|
+ style="width: 200px"
|
|
|
/>
|
|
|
- </Select>
|
|
|
- </FormItem>
|
|
|
- <FormItem label="套餐名称">
|
|
|
- <Select
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- v-model="formData.sub.roll_film_combine_id"
|
|
|
- style="width: 200px"
|
|
|
- :disabled="!formData.company_id || !formData.car_file_id"
|
|
|
- multiple
|
|
|
- >
|
|
|
- <Option
|
|
|
- v-for="item in SureRollFilmCombineList"
|
|
|
- :key="item.id"
|
|
|
- :disabled="item.roll_film_id ? false : true"
|
|
|
- :value="item.id"
|
|
|
- :label="item.title"
|
|
|
+ </FormItem>
|
|
|
+ <FormItem :label-width="10" v-show="formData.status == 0">
|
|
|
+ <Icon
|
|
|
+ type="ios-add-circle-outline"
|
|
|
+ size="25"
|
|
|
+ style="margin-right: 10px"
|
|
|
+ class="btn"
|
|
|
+ @click="handleAddBox(index)"
|
|
|
/>
|
|
|
- </Select>
|
|
|
- </FormItem>
|
|
|
- <FormItem label="数量">
|
|
|
- <Input
|
|
|
- v-model="formData.sub.number"
|
|
|
- clearable
|
|
|
- placeholder="请输入"
|
|
|
- style="width: 200px"
|
|
|
- />
|
|
|
- </FormItem>
|
|
|
- </Form>
|
|
|
- <vxe-grid
|
|
|
- v-bind="gridOptions"
|
|
|
- :footer-method="footerMethod"
|
|
|
- show-footer
|
|
|
- >
|
|
|
- <template #set="{ rowIndex }">
|
|
|
- <Icon
|
|
|
- type="ios-add-circle-outline"
|
|
|
- style="margin-right: 30px"
|
|
|
- size="25"
|
|
|
- @click="handleAdd(rowIndex)"
|
|
|
- />
|
|
|
- <Icon
|
|
|
- size="25"
|
|
|
- type="ios-remove-circle-outline"
|
|
|
- @click="handleRemove(rowIndex)"
|
|
|
- />
|
|
|
- </template>
|
|
|
- <template #car_depart_name="{ row }">
|
|
|
- <Select
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- v-model="row.car_depart_id"
|
|
|
- transfer
|
|
|
- @on-change="handleSelectCarDepart($event, row)"
|
|
|
- >
|
|
|
- <Option
|
|
|
- v-for="item in carDepartList"
|
|
|
- :key="item.id"
|
|
|
- :value="item.id"
|
|
|
- :label="item.title"
|
|
|
+ <Icon
|
|
|
+ type="ios-remove-circle-outline"
|
|
|
+ size="25"
|
|
|
+ style="margin-left: 10px"
|
|
|
+ class="btn"
|
|
|
+ @click="handleReduceBox(index)"
|
|
|
/>
|
|
|
- </Select>
|
|
|
- </template>
|
|
|
- <template #basic_roll_film_name="{ row }">
|
|
|
- <Select
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- v-model="row.basic_roll_film_id"
|
|
|
- transfer
|
|
|
- @on-change="($event) => handleSelectBRF($event, row)"
|
|
|
- >
|
|
|
- <Option
|
|
|
- v-for="item in basicRollFilmList"
|
|
|
- :key="item.id"
|
|
|
- :value="item.id"
|
|
|
- :label="item.title"
|
|
|
- />
|
|
|
- </Select>
|
|
|
- </template>
|
|
|
- <template #roll_film_name="{ row }">
|
|
|
- <Select
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- v-model="row.roll_film_id"
|
|
|
- transfer
|
|
|
- @on-change="handleSelectRollFilm($event, row)"
|
|
|
- >
|
|
|
- <Option
|
|
|
- v-for="item in row.rollFilmList"
|
|
|
- :key="item.id"
|
|
|
- :value="item.id"
|
|
|
- :label="item.title"
|
|
|
+ </FormItem>
|
|
|
+ </Form>
|
|
|
+ <vxe-grid
|
|
|
+ v-bind="ele.gridOptions"
|
|
|
+ :footer-method="footerMethod"
|
|
|
+ show-footer
|
|
|
+ >
|
|
|
+ <template #set="{ rowIndex }">
|
|
|
+ <Icon
|
|
|
+ type="ios-add-circle-outline"
|
|
|
+ style="margin-right: 30px"
|
|
|
+ size="25"
|
|
|
+ @click="handleAdd(rowIndex, index)"
|
|
|
/>
|
|
|
- </Select>
|
|
|
- </template>
|
|
|
- <template #roll_film_number="{ row }">
|
|
|
- <Select
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- v-model="row.roll_film_number"
|
|
|
- transfer
|
|
|
- >
|
|
|
- <Option
|
|
|
- v-for="(item, index) in row.roll_film_number_arr"
|
|
|
- :key="index"
|
|
|
- :value="item.roll_film_number"
|
|
|
- :label="item.roll_film_number"
|
|
|
+ <Icon
|
|
|
+ size="25"
|
|
|
+ type="ios-remove-circle-outline"
|
|
|
+ @click="handleRemove(rowIndex, index)"
|
|
|
/>
|
|
|
- </Select>
|
|
|
- </template>
|
|
|
- </vxe-grid>
|
|
|
+ </template>
|
|
|
+ <template #car_depart_name="{ row }">
|
|
|
+ <Select
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ v-model="row.car_depart_id"
|
|
|
+ transfer
|
|
|
+ @on-change="handleSelectCarDepart($event, row)"
|
|
|
+ >
|
|
|
+ <Option
|
|
|
+ v-for="item in carDepartList"
|
|
|
+ :key="item.id"
|
|
|
+ :value="item.id"
|
|
|
+ :label="item.title"
|
|
|
+ />
|
|
|
+ </Select>
|
|
|
+ </template>
|
|
|
+ <template #basic_roll_film_name="{ row }">
|
|
|
+ <Select
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ v-model="row.basic_roll_film_id"
|
|
|
+ transfer
|
|
|
+ @on-change="($event) => handleSelectBRF($event, row)"
|
|
|
+ >
|
|
|
+ <Option
|
|
|
+ v-for="item in basicRollFilmList"
|
|
|
+ :key="item.id"
|
|
|
+ :value="item.id"
|
|
|
+ :label="item.title"
|
|
|
+ />
|
|
|
+ </Select>
|
|
|
+ </template>
|
|
|
+ <template #roll_film_name="{ row }">
|
|
|
+ <Select
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ v-model="row.roll_film_id"
|
|
|
+ transfer
|
|
|
+ @on-change="handleSelectRollFilm($event, row)"
|
|
|
+ >
|
|
|
+ <Option
|
|
|
+ v-for="item in row.rollFilmList"
|
|
|
+ :key="item.id"
|
|
|
+ :value="item.id"
|
|
|
+ :label="item.title"
|
|
|
+ />
|
|
|
+ </Select>
|
|
|
+ </template>
|
|
|
+ <template #roll_film_number="{ row }">
|
|
|
+ <Select
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ v-model="row.roll_film_number"
|
|
|
+ transfer
|
|
|
+ >
|
|
|
+ <Option
|
|
|
+ v-for="(item, index) in row.roll_film_number_arr"
|
|
|
+ :key="index"
|
|
|
+ :value="item.roll_film_number"
|
|
|
+ :label="item.roll_film_number"
|
|
|
+ />
|
|
|
+ </Select>
|
|
|
+ </template>
|
|
|
+ </vxe-grid>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div>
|
|
|
<Form :label-width="130" class="form">
|
|
|
@@ -803,6 +830,7 @@ export default {
|
|
|
nameList: [],
|
|
|
ownerList: [],
|
|
|
carFilesList: [],
|
|
|
+ SureCarFilesList: [],
|
|
|
specialList: [],
|
|
|
workList: [],
|
|
|
workProductList: [],
|
|
|
@@ -812,33 +840,35 @@ export default {
|
|
|
storehouseList: [],
|
|
|
formData: {
|
|
|
construction_time: new Date(),
|
|
|
- sub: {
|
|
|
- roll_film_combine_id: [],
|
|
|
- },
|
|
|
- name_id: ""
|
|
|
- },
|
|
|
- gridOptions: {
|
|
|
- border: true,
|
|
|
- resizable: true,
|
|
|
- showOverflow: true,
|
|
|
- align: 'left',
|
|
|
- editConfig: {
|
|
|
- trigger: 'click',
|
|
|
- mode: 'row',
|
|
|
- showStatus: true
|
|
|
- },
|
|
|
- columns: [
|
|
|
- { field: 'set', title: '操作', showHeaderOverflow: true, slots: { default: 'set' }, width: 160, align: 'center' },
|
|
|
- { type: 'seq', width: 80, title: '序号', showHeaderOverflow: true },
|
|
|
- { field: 'car_depart_name', title: '施工部位', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'car_depart_name' } },
|
|
|
- { field: 'basic_roll_film_name', title: '卷膜分类', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'basic_roll_film_name' } },
|
|
|
- { field: 'roll_film_name', title: '卷膜型号', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'roll_film_name' } },
|
|
|
- { field: 'roll_film_number', title: '卷膜编号', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'roll_film_number' } },
|
|
|
- { field: 'meter', title: '耗用米数', showHeaderOverflow: true, minWidth: 100 },
|
|
|
- ],
|
|
|
- data: [
|
|
|
+ sub: [
|
|
|
+ {
|
|
|
+ roll_film_combine_id: '', gridOptions: {
|
|
|
+ border: true,
|
|
|
+ resizable: true,
|
|
|
+ showOverflow: true,
|
|
|
+ align: 'left',
|
|
|
+ editConfig: {
|
|
|
+ trigger: 'click',
|
|
|
+ mode: 'row',
|
|
|
+ showStatus: true
|
|
|
+ },
|
|
|
+ columns: [
|
|
|
+ { field: 'set', title: '操作', showHeaderOverflow: true, slots: { default: 'set' }, width: 160, align: 'center' },
|
|
|
+ { type: 'seq', width: 80, title: '序号', showHeaderOverflow: true },
|
|
|
+ { field: 'car_depart_name', title: '施工部位', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'car_depart_name' } },
|
|
|
+ { field: 'basic_roll_film_name', title: '卷膜分类', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'basic_roll_film_name' } },
|
|
|
+ { field: 'roll_film_name', title: '卷膜型号', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'roll_film_name' } },
|
|
|
+ { field: 'roll_film_number', title: '卷膜编号', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'roll_film_number' } },
|
|
|
+ { field: 'meter', title: '耗用米数', showHeaderOverflow: true, minWidth: 100 },
|
|
|
+ ],
|
|
|
+ data: [
|
|
|
|
|
|
- ]
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ name_id: "",
|
|
|
+ status: 0
|
|
|
},
|
|
|
imgData: {
|
|
|
'1': '',
|
|
|
@@ -871,10 +901,6 @@ export default {
|
|
|
this.axios.post('/api/areaList').then(res => {
|
|
|
this.areaList = this.getArr(res.data);
|
|
|
})
|
|
|
- //获取施工产品类型
|
|
|
- this.axios.post('/api/basicTypeList', { type: 2 }).then(res => {
|
|
|
- this.workProductList = res.data.data;
|
|
|
- })
|
|
|
//获取业务类型
|
|
|
this.axios.post('/api/basicTypeList', { type: 1 }).then(res => {
|
|
|
this.workList = res.data.data;
|
|
|
@@ -890,6 +916,7 @@ export default {
|
|
|
//获取车辆型号
|
|
|
this.axios.post('/api/carFilesList').then(res => {
|
|
|
this.carFilesList = res.data.data;
|
|
|
+ this.SureCarFilesList = JSON.parse(JSON.stringify(res.data.data));
|
|
|
})
|
|
|
//获取车架号
|
|
|
this.axios.post('/api/ownerList').then(res => {
|
|
|
@@ -908,7 +935,7 @@ export default {
|
|
|
this.basicRollFilmList = this.getArr(res.data)
|
|
|
})
|
|
|
//获取人员列表
|
|
|
- this.axios.post('/api/employeeList').then(res => {
|
|
|
+ this.axios.post('/api/employeeList', { all_emp: 1 }).then(res => {
|
|
|
this.employeeList = res.data.data;
|
|
|
})
|
|
|
//获取列表
|
|
|
@@ -916,21 +943,62 @@ export default {
|
|
|
this.menuList = res.data;
|
|
|
})
|
|
|
},
|
|
|
- mounted() {
|
|
|
+ async mounted() {
|
|
|
this.type = this.$route.query.type;
|
|
|
+ //获取施工产品类型
|
|
|
+ await this.axios.post('/api/basicTypeList', { type: 2 }).then(res => {
|
|
|
+ this.workProductList = res.data.data;
|
|
|
+ })
|
|
|
if (this.type != 1) {
|
|
|
this.is_ready = false;
|
|
|
- this.initData();
|
|
|
+ await this.initData();
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
- handleSelectBRF(e, row) {
|
|
|
+ handleChangeCarType(e) {
|
|
|
+ if (e) {
|
|
|
+ this.SureCarFilesList = this.carFilesList.filter(v => v.car_type_id == e);
|
|
|
+ } else {
|
|
|
+ this.SureCarFilesList = JSON.parse(JSON.stringify(this.carFilesList));
|
|
|
+ }
|
|
|
+ this.formData.car_file_id = '';
|
|
|
+ },
|
|
|
+ handleAddBox(index) {
|
|
|
+ this.formData.sub.splice(index + 1, 0, {
|
|
|
+ roll_film_combine_id: '', gridOptions: {
|
|
|
+ border: true,
|
|
|
+ resizable: true,
|
|
|
+ showOverflow: true,
|
|
|
+ align: 'left',
|
|
|
+ editConfig: {
|
|
|
+ trigger: 'click',
|
|
|
+ mode: 'row',
|
|
|
+ showStatus: true
|
|
|
+ },
|
|
|
+ columns: [
|
|
|
+ { field: 'set', title: '操作', showHeaderOverflow: true, slots: { default: 'set' }, width: 160, align: 'center' },
|
|
|
+ { type: 'seq', width: 80, title: '序号', showHeaderOverflow: true },
|
|
|
+ { field: 'car_depart_name', title: '施工部位', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'car_depart_name' } },
|
|
|
+ { field: 'basic_roll_film_name', title: '卷膜分类', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'basic_roll_film_name' } },
|
|
|
+ { field: 'roll_film_name', title: '卷膜型号', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'roll_film_name' } },
|
|
|
+ { field: 'roll_film_number', title: '卷膜编号', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'roll_film_number' } },
|
|
|
+ { field: 'meter', title: '耗用米数', showHeaderOverflow: true, minWidth: 100 },
|
|
|
+ ],
|
|
|
+ data: [
|
|
|
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleReduceBox(index) {
|
|
|
+ this.formData.sub.splice(index, 1);
|
|
|
+ },
|
|
|
+ handleSelectBRF(e, row) {
|
|
|
if (e) {
|
|
|
- row.rollFilmList = this.rollFilmList.filter(v => v.b_r_f_id == e);
|
|
|
+ row.rollFilmList = this.rollFilmList.filter(v => v.b_r_f_id == e && (this.formData.company_id ? v.company_id == this.formData.company_id : true));
|
|
|
row.basic_roll_film_name = this.basicRollFilmList.find(v => v.id == e).title;
|
|
|
} else {
|
|
|
- row.rollFilmList = this.rollFilmList;
|
|
|
+ row.rollFilmList = this.rollFilmList.filter(v => this.formData.company_id ? v.company_id == this.formData.company_id : true);
|
|
|
row.basic_roll_film_name = '';
|
|
|
}
|
|
|
|
|
|
@@ -949,11 +1017,15 @@ export default {
|
|
|
handleSelectCarFile(e) {
|
|
|
if (e) {
|
|
|
let is_big = this.carFilesList.find(v => v.id == e).is_big;
|
|
|
- this.SureRollFilmCombineList = this.rollFilmCombineList.filter(v => (v.company_id == this.formData.company_id && v.is_big == is_big && this.formData.basic_type_item_id ? this.workProductList.find(x => x.id == this.formData.basic_type_item_id).b_r_f_id.split(',').map(b => b * 1).indexOf(v.basic_roll_film_id) != -1 : true));
|
|
|
+ this.SureRollFilmCombineList = this.rollFilmCombineList.filter(v => (v.company_id == this.formData.company_id && (this.formData.basic_type_item_id ? this.workProductList.find(x => x.id == this.formData.basic_type_item_id).b_r_f_id.split(',').map(b => b * 1).indexOf(v.basic_roll_film_id) != -1 : true)));
|
|
|
+ this.formData.is_big = is_big
|
|
|
} else {
|
|
|
this.SureRollFilmCombineList = [];
|
|
|
- this.formData.sub.roll_film_combine_id = [];
|
|
|
}
|
|
|
+ this.formData.sub.forEach(v => {
|
|
|
+ v.roll_film_combine_id = '';
|
|
|
+ v.gridOptions.data = [];
|
|
|
+ })
|
|
|
},
|
|
|
handleCreateVin(val) {
|
|
|
this.ownerList.push({
|
|
|
@@ -1047,6 +1119,9 @@ export default {
|
|
|
initData() {
|
|
|
this.axios.post('/api/constructionDetail', { order_number: this.$route.query.order_number }).then(res => {
|
|
|
this.formData = JSON.parse(JSON.stringify(res.data));
|
|
|
+ this.formData.is_big = this.carFilesList.find(v => v.car_type_id == this.formData.car_type).is_big;
|
|
|
+ this.SureRollFilmCombineList = this.rollFilmCombineList.filter(v => (v.company_id == this.formData.company_id && (this.formData.basic_type_item_id ? this.workProductList.find(x => x.id == this.formData.basic_type_item_id).b_r_f_id.split(',').map(b => b * 1).indexOf(v.basic_roll_film_id) != -1 : true)
|
|
|
+ ));
|
|
|
this.formData.construction_time = this.func.replaceDateNoHMS(this.formData.construction_time);
|
|
|
this.img_type = this.workProductList.find(v => v.id == this.formData.basic_type_item_id).img_type.split(',');
|
|
|
let id = this.fourShopList.find(v => v.id == this.formData.four_shop_id).construction_person.map(c => c.id);
|
|
|
@@ -1075,38 +1150,57 @@ export default {
|
|
|
|
|
|
|
|
|
})
|
|
|
- console.log(this.imgData);
|
|
|
- delete this.formData.sub.detail;
|
|
|
- this.formData.sub.roll_film_combine_id = this.formData.sub.roll_film_combine_id.split(',');
|
|
|
- this.formData.sub.roll_film_combine_id = this.formData.sub.roll_film_combine_id.map(v => (v * 1))
|
|
|
- console.log(this.formData);
|
|
|
- this.gridOptions.data = res.data.sub.detail;
|
|
|
+ this.formData.sub.forEach(v => {
|
|
|
+ v.gridOptions = {
|
|
|
+ border: true,
|
|
|
+ resizable: true,
|
|
|
+ showOverflow: true,
|
|
|
+ align: 'left',
|
|
|
+ editConfig: {
|
|
|
+ trigger: 'click',
|
|
|
+ mode: 'row',
|
|
|
+ showStatus: true
|
|
|
+ },
|
|
|
+ columns: [
|
|
|
+ { field: 'set', title: '操作', showHeaderOverflow: true, slots: { default: 'set' }, width: 160, align: 'center' },
|
|
|
+ { type: 'seq', width: 80, title: '序号', showHeaderOverflow: true },
|
|
|
+ { field: 'car_depart_name', title: '施工部位', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'car_depart_name' } },
|
|
|
+ { field: 'basic_roll_film_name', title: '卷膜分类', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'basic_roll_film_name' } },
|
|
|
+ { field: 'roll_film_name', title: '卷膜型号', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'roll_film_name' } },
|
|
|
+ { field: 'roll_film_number', title: '卷膜编号', showHeaderOverflow: true, minWidth: 100, editRender: {}, slots: { edit: 'roll_film_number' } },
|
|
|
+ { field: 'meter', title: '耗用米数', showHeaderOverflow: true, minWidth: 100 },
|
|
|
+ ],
|
|
|
+ data: v.detail
|
|
|
+ }
|
|
|
+ })
|
|
|
//获取卷膜型号
|
|
|
this.axios.post('/api/rollFilmList', { storehouse_id: this.formData.storehouse_id }).then(req => {
|
|
|
this.rollFilmList = req.data.data;
|
|
|
- this.gridOptions.data.forEach(v => {
|
|
|
- this.handleSelectBRF(v.basic_roll_film_id, v);
|
|
|
- v.roll_film_number_arr = this.rollFilmList.find(c => c.id == v.roll_film_id).roll_film_number_arr;
|
|
|
+ this.formData.sub.forEach(c => {
|
|
|
+ c.gridOptions.data.forEach(v => {
|
|
|
+ this.handleSelectBRF(v.basic_roll_film_id, v);
|
|
|
+ v.roll_film_number_arr = this.rollFilmList.find(c => c.id == v.roll_film_id).roll_film_number_arr;
|
|
|
+ })
|
|
|
})
|
|
|
-
|
|
|
this.is_ready = true;
|
|
|
})
|
|
|
-
|
|
|
- this.gridOptions.data.forEach(v => {
|
|
|
- v.basic_roll_film_name = v.b_r_f_name;
|
|
|
- v.roll_film_name = v.title;
|
|
|
+ this.formData.sub.forEach(b => {
|
|
|
+ b.gridOptions.data.forEach(v => {
|
|
|
+ v.basic_roll_film_name = v.b_r_f_name;
|
|
|
+ v.roll_film_name = v.title;
|
|
|
+ })
|
|
|
})
|
|
|
if (res.data.status != 0) {
|
|
|
- this.gridOptions.columns = [
|
|
|
- { type: 'seq', width: 80, title: '序号', showHeaderOverflow: true },
|
|
|
- { field: 'car_depart_name', title: '施工部位', showHeaderOverflow: true, minWidth: 100 },
|
|
|
- { field: 'basic_roll_film_name', title: '卷膜分类', showHeaderOverflow: true, minWidth: 100 },
|
|
|
- { field: 'roll_film_name', title: '卷膜型号', showHeaderOverflow: true, minWidth: 100 },
|
|
|
- { field: 'roll_film_number', title: '卷膜编号', showHeaderOverflow: true, minWidth: 100 },
|
|
|
- { field: 'meter', title: '耗用米数', showHeaderOverflow: true, minWidth: 100 }]
|
|
|
+ this.formData.sub.forEach(c => {
|
|
|
+ c.gridOptions.columns = [
|
|
|
+ { type: 'seq', width: 80, title: '序号', showHeaderOverflow: true },
|
|
|
+ { field: 'car_depart_name', title: '施工部位', showHeaderOverflow: true, minWidth: 100 },
|
|
|
+ { field: 'basic_roll_film_name', title: '卷膜分类', showHeaderOverflow: true, minWidth: 100 },
|
|
|
+ { field: 'roll_film_name', title: '卷膜型号', showHeaderOverflow: true, minWidth: 100 },
|
|
|
+ { field: 'roll_film_number', title: '卷膜编号', showHeaderOverflow: true, minWidth: 100 },
|
|
|
+ { field: 'meter', title: '耗用米数', showHeaderOverflow: true, minWidth: 100 }]
|
|
|
+ })
|
|
|
}
|
|
|
- this.SureRollFilmCombineList = this.rollFilmCombineList.filter(v => (v.company_id == this.formData.company_id && this.formData.basic_type_item_id ? this.workProductList.find(x => x.id == this.formData.basic_type_item_id).b_r_f_id.map(b => b * 1).split(',').indexOf(v.basic_roll_film_id) != -1 : true
|
|
|
- ));
|
|
|
this.axios.post('/api/ownerDetail', { id: this.formData.own_id }).then(req => {
|
|
|
this.nameList = req.data.sub.filter(v => v.use == '1');
|
|
|
this.formData.name_id = res.data.own_sub_id;
|
|
|
@@ -1114,8 +1208,6 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
handleSave() {
|
|
|
-
|
|
|
-
|
|
|
let img = [];
|
|
|
let key = Object.keys(this.imgData);
|
|
|
key.forEach(v => {
|
|
|
@@ -1134,16 +1226,15 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
-
|
|
|
-
|
|
|
let data = JSON.parse(JSON.stringify(this.formData));
|
|
|
if (!this.is_create) {
|
|
|
data.own_name = data.name_id ? this.nameList.find(v => v.id == data.name_id).name : '';
|
|
|
data.own_phone = data.name_id ? this.nameList.find(v => v.id == data.name_id).phone : '';
|
|
|
}
|
|
|
-
|
|
|
- data.sub.detail = JSON.parse(JSON.stringify(this.gridOptions.data));
|
|
|
- data.sub.roll_film_combine_id = data.sub.roll_film_combine_id ? data.sub.roll_film_combine_id.toString() : '';
|
|
|
+ data.sub.forEach(v => {
|
|
|
+ v.detail = JSON.parse(JSON.stringify(v.gridOptions.data));
|
|
|
+ delete v.gridOptions;
|
|
|
+ })
|
|
|
data.construction_time = data.construction_time ? Date.parse(data.construction_time).toString().slice(0, 10) : '';
|
|
|
data.img = img;
|
|
|
if (this.type == 1) {
|
|
|
@@ -1168,6 +1259,7 @@ export default {
|
|
|
row.basic_roll_film_id = this.rollFilmList.find(v => v.id == e).b_r_f_id;
|
|
|
row.basic_roll_film_name = this.rollFilmList.find(v => v.id == e).b_r_f_name;
|
|
|
row.roll_film_number_arr = this.rollFilmList.find(v => v.id == e).roll_film_number_arr;
|
|
|
+ row.warranty_day = this.rollFilmList.find(v => v.id == e).warranty_day;
|
|
|
row.roll_film_number = '';
|
|
|
} else {
|
|
|
row.roll_film_name = '';
|
|
|
@@ -1175,6 +1267,7 @@ export default {
|
|
|
row.basic_roll_film_name = '';
|
|
|
row.roll_film_number_arr = [];
|
|
|
row.roll_film_number = '';
|
|
|
+ row.warranty_day = '';
|
|
|
}
|
|
|
},
|
|
|
handleSelectCarDepart(e, row) {
|
|
|
@@ -1186,51 +1279,55 @@ export default {
|
|
|
row.meter = '';
|
|
|
}
|
|
|
},
|
|
|
- handleRemove(index) {
|
|
|
- if (this.gridOptions.data.length > 1) {
|
|
|
- this.gridOptions.data.splice(index, 1);
|
|
|
+ handleRemove(index, idx) {
|
|
|
+ if (this.formData.sub[idx].gridOptions.data.length > 1) {
|
|
|
+ this.formData.sub[idx].gridOptions.data.splice(index, 1);
|
|
|
} else {
|
|
|
return
|
|
|
}
|
|
|
},
|
|
|
- handleAdd(index) {
|
|
|
- this.gridOptions.data.splice(index + 1, 0, { car_depart_id: '', car_depart_name: '', basic_roll_film_id: '', basic_roll_film_name: '', roll_film_id: '', roll_film_name: '', meter: '', roll_film_number: '', roll_film_number_arr: [] });
|
|
|
+ handleAdd(index, idx) {
|
|
|
+ this.formData.sub[idx].gridOptions.data.splice(index + 1, 0, { car_depart_id: '', car_depart_name: '', basic_roll_film_id: '', basic_roll_film_name: '', roll_film_id: '', roll_film_name: '', meter: '', roll_film_number: '', roll_film_number_arr: [] });
|
|
|
},
|
|
|
- handleSelectCombine(e) {
|
|
|
- if (e.length > 0) {
|
|
|
- this.gridOptions.data = [];
|
|
|
- e.forEach(c => {
|
|
|
- //获取组合名称的id;
|
|
|
- let id = this.SureRollFilmCombineList.find(v => v.id == c).c_d_c_id;
|
|
|
- let roll_film_id = this.SureRollFilmCombineList.find(v => v.id == c).roll_film_id;
|
|
|
- let roll_film_name = this.SureRollFilmCombineList.find(v => v.id == c).roll_film_name;
|
|
|
- let basic_roll_film_name = this.SureRollFilmCombineList.find(v => v.id == c).roll_film_type;
|
|
|
- let basic_roll_film_id = this.SureRollFilmCombineList.find(v => v.id == c).basic_roll_film_id;
|
|
|
- this.axios.post('/api/carDepartCombineDetail', { id }).then(res => {
|
|
|
- let car_depart_sub = res.data.car_depart_sub;
|
|
|
- let data = this.carDepartList.filter(v => car_depart_sub.indexOf(v.id) != -1);
|
|
|
- data.forEach(v => {
|
|
|
-
|
|
|
- v.car_depart_name = v.title;
|
|
|
- // v.disable = true;
|
|
|
- v.basic_roll_film_id = basic_roll_film_id;
|
|
|
- v.roll_film_name = roll_film_name;
|
|
|
- v.basic_roll_film_name = basic_roll_film_name;
|
|
|
- this.handleSelectBRF(basic_roll_film_id, v);
|
|
|
- v.roll_film_id = roll_film_id
|
|
|
- v.meter = v.expend_meters;
|
|
|
+ handleSelectCombine(e, index) {
|
|
|
+ if (e) {
|
|
|
+ //获取套餐下绑定的卷膜分类和型号,部位的分类和型号套餐下的都一样
|
|
|
+ this.formData.sub[index].gridOptions.data = [];
|
|
|
+ let id = this.SureRollFilmCombineList.find(v => v.id == e).c_d_c_id;
|
|
|
+ let roll_film_id = this.SureRollFilmCombineList.find(v => v.id == e).roll_film_id;
|
|
|
+ let roll_film_name = this.SureRollFilmCombineList.find(v => v.id == e).roll_film_name;
|
|
|
+ let basic_roll_film_name = this.SureRollFilmCombineList.find(v => v.id == e).roll_film_type;
|
|
|
+ let basic_roll_film_id = this.SureRollFilmCombineList.find(v => v.id == e).basic_roll_film_id;
|
|
|
+ let warranty_day = this.rollFilmList.find(v => v.id == roll_film_id).warranty_day;
|
|
|
+ this.axios.post('/api/carDepartCombineDetail', { id }).then(res => {
|
|
|
+ let car_depart_sub = this.formData.is_big ? res.data.car_depart_sub_big : res.data.car_depart_sub; //如果是大型车就拿big的不是就是拿另外一个非大型车的
|
|
|
+ let data = this.carDepartList.filter(v => car_depart_sub.indexOf(v.id) != -1);
|
|
|
+ data.forEach(v => {
|
|
|
+ v.warranty_day = warranty_day;
|
|
|
+ v.car_depart_name = v.title;
|
|
|
+ // v.disable = true;
|
|
|
+ v.basic_roll_film_id = basic_roll_film_id;
|
|
|
+ v.roll_film_name = roll_film_name;
|
|
|
+ v.basic_roll_film_name = basic_roll_film_name;
|
|
|
+ this.handleSelectBRF(basic_roll_film_id, v);
|
|
|
+ v.roll_film_id = roll_film_id
|
|
|
+ if (this.formData.is_big) {
|
|
|
+ console.log(this.formData.is_big, 'da')
|
|
|
+ v.meter = res.data.car_depart_meters_big.find(c => c.car_depart_id == v.id).car_depart_meter ? res.data.car_depart_meters_big.find(c => c.car_depart_id == v.id).car_depart_meter : v.expend_meters;
|
|
|
v.car_depart_id = v.id;
|
|
|
- v.roll_film_number_arr = this.rollFilmList.find(c => c.id == v.roll_film_id).roll_film_number_arr;
|
|
|
- // v.roll_film_number_arr = [];
|
|
|
-
|
|
|
-
|
|
|
- })
|
|
|
- this.gridOptions.data = [...this.gridOptions.data, ...JSON.parse(JSON.stringify(data))];
|
|
|
+ } else {
|
|
|
+ console.log(this.formData.is_big, 'xiao')
|
|
|
+ v.meter = res.data.car_depart_meters.find(c => c.car_depart_id == v.id).car_depart_meter ? res.data.car_depart_meters.find(c => c.car_depart_id == v.id).car_depart_meter : v.expend_meters;
|
|
|
+ v.car_depart_id = v.id;
|
|
|
+ }
|
|
|
+ v.roll_film_number_arr = this.rollFilmList.find(c => c.id == v.roll_film_id).roll_film_number_arr;
|
|
|
+ // v.roll_film_number_arr = [];
|
|
|
})
|
|
|
+ this.formData.sub[index].gridOptions.data = [...this.formData.sub[index].gridOptions.data, ...JSON.parse(JSON.stringify(data))];
|
|
|
+ console.log(this.formData.sub[index].gridOptions.data);
|
|
|
})
|
|
|
-
|
|
|
} else {
|
|
|
- this.gridOptions.data = [{ car_depart_id: '', car_depart_name: '', basic_roll_film_id: '', basic_roll_film_name: '', roll_film_id: '', roll_film_name: '', meter: '', roll_film_number: '', roll_film_number_arr: [] }];
|
|
|
+ this.formData.sub[index].gridOptions.data = [{ car_depart_id: '', car_depart_name: '', basic_roll_film_id: '', basic_roll_film_name: '', roll_film_id: '', roll_film_name: '', meter: '', roll_film_number: '', roll_film_number_arr: [] }];
|
|
|
}
|
|
|
this.$forceUpdate();
|
|
|
},
|
|
|
@@ -1257,8 +1354,10 @@ export default {
|
|
|
this.formData.contract_phone = this.fourShopList.find(v => v.id == e).contract_phone;
|
|
|
this.formData.regional_manager = this.fourShopList.find(v => v.id == e).regional_manager;
|
|
|
this.formData.address = this.fourShopList.find(v => v.id == e).address;
|
|
|
- this.SureRollFilmCombineList = this.rollFilmCombineList.filter(v => (v.company_id == this.formData.company_id && this.formData.basic_type_item_id ? this.workProductList.find(x => x.id == this.formData.basic_type_item_id).b_r_f_id.split(',').map(b => b * 1).indexOf(v.basic_roll_film_id) != -1 : true));
|
|
|
- this.formData.sub.roll_film_combine_id = '';
|
|
|
+ this.SureRollFilmCombineList = this.rollFilmCombineList.filter(v => (v.company_id == this.formData.company_id && (this.formData.basic_type_item_id ? this.workProductList.find(x => x.id == this.formData.basic_type_item_id).b_r_f_id.split(',').map(b => b * 1).indexOf(v.basic_roll_film_id) != -1 : true)));
|
|
|
+ this.formData.sub.forEach(v => {
|
|
|
+ v.roll_film_combine_id = '';
|
|
|
+ })
|
|
|
let id = this.fourShopList.find(v => v.id == this.formData.four_shop_id).construction_person.map(c => c.id);
|
|
|
let arr = JSON.parse(JSON.stringify(this.employeeList));
|
|
|
let arr1 = [];
|
|
|
@@ -1290,7 +1389,9 @@ export default {
|
|
|
this.formData.technical_manager = '';
|
|
|
this.formData.regional_manager = '';
|
|
|
}
|
|
|
- this.gridOptions.data = [{}]
|
|
|
+ this.formData.sub.forEach(v => {
|
|
|
+ v.gridOptions.data = [];
|
|
|
+ })
|
|
|
},
|
|
|
handleSelectVin(e) {
|
|
|
if (e) {
|
|
|
@@ -1300,6 +1401,7 @@ export default {
|
|
|
this.is_create = false;
|
|
|
this.formData.car_type = this.ownerList.find(v => (v.vin_no == e)).car_type;
|
|
|
this.formData.car_file_id = this.ownerList.find(v => v.vin_no == e).car_file_id;
|
|
|
+ this.formData.is_big = this.carFilesList.find(v => v.id == this.formData.car_file_id).is_big;
|
|
|
this.axios.post('/api/ownerDetail', { id }).then(res => {
|
|
|
this.nameList = res.data.sub.filter(v => v.use)
|
|
|
})
|
|
|
@@ -1312,6 +1414,7 @@ export default {
|
|
|
this.formData.car_type = '';
|
|
|
this.formData.car_file_id = '';
|
|
|
this.formData.own_id = '';
|
|
|
+ this.formData.is_big = '';
|
|
|
}
|
|
|
},
|
|
|
}
|
|
|
@@ -1377,4 +1480,7 @@ export default {
|
|
|
color: red;
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
+.btn {
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
</style>
|