|
@@ -25,8 +25,39 @@
|
|
|
<el-col class="card-header1" :span="24">线路:{{ getroute(item.route) }}</el-col>
|
|
|
</el-row>
|
|
|
</div>
|
|
|
- <data-table height="200px" :fields="fields" :data="item.split" :usePage="false" :opera="opera" @handleSelect="toSelect" :select="true">
|
|
|
- </data-table>
|
|
|
+ <!-- <data-table
|
|
|
+ height="200px"
|
|
|
+ :fields="fields"
|
|
|
+ :data="item.split"
|
|
|
+ :usePage="false"
|
|
|
+ :opera="opera"
|
|
|
+ @handleSelect="toSelect"
|
|
|
+ :select="true"
|
|
|
+ rowkey="_id"
|
|
|
+ >
|
|
|
+ </data-table> -->
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-table
|
|
|
+ :data="item.split"
|
|
|
+ border
|
|
|
+ height="200px"
|
|
|
+ @selection-change="
|
|
|
+ val => {
|
|
|
+ handleSelectionChange(val, index);
|
|
|
+ }
|
|
|
+ "
|
|
|
+ @select="onTableSelect"
|
|
|
+ >
|
|
|
+ <el-table-column type="selection" width="55"> </el-table-column>
|
|
|
+ <el-table-column prop="name" label="货物" sortable></el-table-column>
|
|
|
+ <el-table-column prop="number" label="数量" sortable></el-table-column>
|
|
|
+ <el-table-column prop="weight" label="重量" sortable></el-table-column>
|
|
|
+ <el-table-column prop="volume" label="体积" sortable></el-table-column>
|
|
|
+ <el-table-column prop="remark" label="备注" sortable></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
</el-card>
|
|
|
</el-col>
|
|
|
<el-col :span="24" class="page">
|
|
@@ -85,7 +116,7 @@
|
|
|
<span v-else-if="form.supply_type == '1'">
|
|
|
<el-form-item label="供应商">
|
|
|
<el-select v-model="form.supplier.client" placeholder="供应商" @change="changeClient">
|
|
|
- <el-option v-for="item in clientList" :key="item.label" :label="item.name" :value="item.id"> </el-option>
|
|
|
+ <el-option v-for="item in supClientList" :key="item.label" :label="item.name" :value="item.id"> </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="合同">
|
|
@@ -156,6 +187,7 @@
|
|
|
// 分页
|
|
|
import page from '@f/components/pagination.vue';
|
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
+const _ = require('lodash');
|
|
|
// 订单表
|
|
|
const { mapActions: order } = createNamespacedHelpers('order');
|
|
|
// 客户表
|
|
@@ -192,13 +224,13 @@ export default {
|
|
|
// 线路列表
|
|
|
routeList: [],
|
|
|
// 订单列表
|
|
|
- fields: [
|
|
|
- { label: '货物', model: 'name' },
|
|
|
- { label: '数量', model: 'number' },
|
|
|
- { label: '重量', model: 'weight' },
|
|
|
- { label: '体积', model: 'volume' },
|
|
|
- { label: '备注', model: 'remark' },
|
|
|
- ],
|
|
|
+ // fields: [
|
|
|
+ // { label: '货物', model: 'name' },
|
|
|
+ // { label: '数量', model: 'number' },
|
|
|
+ // { label: '重量', model: 'weight' },
|
|
|
+ // { label: '体积', model: 'volume' },
|
|
|
+ // { label: '备注', model: 'remark' },
|
|
|
+ // ],
|
|
|
list: [],
|
|
|
total: 0,
|
|
|
limit: 4,
|
|
@@ -238,6 +270,8 @@ export default {
|
|
|
taxesList: [],
|
|
|
// 当供应商类型为0,2时,路线在订单中直接获取
|
|
|
depositRoute: '',
|
|
|
+ num: true,
|
|
|
+ newObj: {},
|
|
|
};
|
|
|
},
|
|
|
async created() {
|
|
@@ -268,6 +302,12 @@ export default {
|
|
|
const { data, total } = res;
|
|
|
this.$set(this, `clientList`, data);
|
|
|
}
|
|
|
+ // 查供应商
|
|
|
+ res = await this.clientQuery({ type: '供应商' });
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ const { data, total } = res;
|
|
|
+ this.$set(this, `supClientList`, data);
|
|
|
+ }
|
|
|
// 查询线路列表
|
|
|
res = await this.routeQuery();
|
|
|
if (this.$checkRes(res)) {
|
|
@@ -281,10 +321,12 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
// 选择货物
|
|
|
- toSelect(data) {
|
|
|
- let newData = data.concat(this.selected);
|
|
|
- this.$set(this, `selected`, newData);
|
|
|
- },
|
|
|
+ // toSelect(data) {
|
|
|
+ // console.log(data);
|
|
|
+ // let newData = data.concat(this.selected);
|
|
|
+ // this.$set(this, `selected`, newData);
|
|
|
+ // console.log(this.selected);
|
|
|
+ // },
|
|
|
// 发车
|
|
|
async toExport() {
|
|
|
let res = await this.transportNo();
|
|
@@ -327,6 +369,7 @@ export default {
|
|
|
// 生成装车单
|
|
|
async onSubmit() {
|
|
|
let data = this.form;
|
|
|
+ // console.log(data);
|
|
|
data.goods = this.goodsList;
|
|
|
let res = await this.transportCreate(data);
|
|
|
if (this.$checkRes(res)) {
|
|
@@ -353,22 +396,22 @@ export default {
|
|
|
else return value;
|
|
|
},
|
|
|
// 选择供应商,查询合同
|
|
|
- async changeClient() {
|
|
|
- let res = await this.treatyQuery({ type: '供应商' });
|
|
|
+ async changeClient(value) {
|
|
|
+ let res = await this.treatyQuery({ client: value });
|
|
|
if (this.$checkRes(res)) {
|
|
|
this.$set(this, `treatyList`, res.data);
|
|
|
}
|
|
|
},
|
|
|
// 选择合同,查询项目
|
|
|
async changeTreaty(value) {
|
|
|
- let res = await this.projectQuery({ client: value });
|
|
|
+ let res = await this.projectQuery({ treaty: value });
|
|
|
if (this.$checkRes(res)) {
|
|
|
this.$set(this, `itemList`, res.data);
|
|
|
}
|
|
|
},
|
|
|
// 选择项目,查询线路
|
|
|
async changeItem(value) {
|
|
|
- let res = await this.routeQuery({ treaty: value });
|
|
|
+ let res = await this.routeQuery({ item: value });
|
|
|
if (this.$checkRes(res)) {
|
|
|
this.$set(this, `supRouteList`, res.data);
|
|
|
}
|
|
@@ -380,7 +423,7 @@ export default {
|
|
|
},
|
|
|
// 选择线路,查询计算方式
|
|
|
async changeRoute(value) {
|
|
|
- let res = await this.modeQuery({ item: value });
|
|
|
+ let res = await this.modeQuery({ route: value });
|
|
|
if (this.$checkRes(res)) {
|
|
|
this.$set(this, `modeList`, res.data);
|
|
|
}
|
|
@@ -440,6 +483,37 @@ export default {
|
|
|
this.$set(this, `carnoList`, res.data);
|
|
|
}
|
|
|
},
|
|
|
+ handleSelectionChange(val, index) {
|
|
|
+ let obj = this.newObj;
|
|
|
+ let numberIndex;
|
|
|
+ console.log(this.num);
|
|
|
+ //如果返回来的数组为空,那么就是这个list全部取消
|
|
|
+ if (val.length === 0) {
|
|
|
+ let newArray = _.differenceWith(this.selected, this.list[index].split, _.isEqual);
|
|
|
+ this.$set(this, `selected`, newArray);
|
|
|
+ } else {
|
|
|
+ //正常取消,除了全部取消的情况
|
|
|
+ if (this.num === false) {
|
|
|
+ numberIndex = _.findIndex(this.selected, function(o) {
|
|
|
+ return o._id == obj._id;
|
|
|
+ });
|
|
|
+ var newSelected = _.cloneDeep(this.selected);
|
|
|
+ newSelected.splice(numberIndex, 1);
|
|
|
+ this.$set(this, `selected`, newSelected);
|
|
|
+ } else if (this.num === true || this.num === 0) {
|
|
|
+ let newArr = _.difference(val, this.selected);
|
|
|
+ let newData = newArr.concat(this.selected);
|
|
|
+ this.$set(this, `selected`, newData);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ console.log(this.selected);
|
|
|
+ },
|
|
|
+ onTableSelect(selection, row) {
|
|
|
+ //判断是选中还是取消商品,num为true是选中,为false的时候是取消
|
|
|
+ //取消没了的时候selection.length为0,num也就是0
|
|
|
+ this.num = selection.length && selection.indexOf(row) !== -1;
|
|
|
+ this.newObj = row;
|
|
|
+ },
|
|
|
},
|
|
|
computed: {
|
|
|
...mapState(['user']),
|