|
@@ -76,18 +76,76 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-button size="small" @click="addTab(editableTabsValue)" style="margin:10px 0px">
|
|
|
- + 添加支出
|
|
|
- </el-button>
|
|
|
- <el-tabs v-model="editableTabsValue" type="card" closable @tab-remove="removeTab">
|
|
|
+ <span v-if="detailForm.is_js == false">
|
|
|
+ <el-button size="small" @click="addTab(editableTabsValue)" style="margin:10px 0px">
|
|
|
+ + 添加支出
|
|
|
+ </el-button>
|
|
|
+ </span>
|
|
|
+ <el-tabs v-model="editableTabsValue" type="card" :closable="!detailForm.is_js" @tab-remove="removeTab">
|
|
|
<el-tab-pane v-for="(item, index) in detailForm.out_bill" :key="index" :label="`支出${index + 1}`" :name="`${index + 1}`">
|
|
|
<el-col :span="24">
|
|
|
<el-form ref="form" label-width="90px" :inline="true">
|
|
|
<el-form-item label="支出项">
|
|
|
- <el-select v-model="item.item" placeholder="请选择支出项">
|
|
|
+ <el-select v-model="item.cost_item" placeholder="请选择支出项" v-if="!item.is_js">
|
|
|
<el-option v-for="(item, index) in costList" :key="index" :label="item.label" :value="item.value"></el-option>
|
|
|
</el-select>
|
|
|
+ <el-input v-model="item.cost_item" readonly v-else></el-input>
|
|
|
</el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="供应商方式">
|
|
|
+ <el-radio-group v-model="item.supply_type" @change="changeSupply" v-if="!item.is_js">
|
|
|
+ <el-radio label="0">自运</el-radio>
|
|
|
+ <el-radio label="1">供应商</el-radio>
|
|
|
+ <el-radio label="2">第三方单位</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <!-- <el-radio v-else>{{ getSupStyle(value) }}</el-radio> -->
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <span v-if="item.supply_type == '0'">
|
|
|
+ <el-form-item label="车牌号">
|
|
|
+ <el-select v-model="item.car_no" placeholder="车牌号" v-if="!item.is_js">
|
|
|
+ <el-option v-for="item in carnoList" :key="item.label" :label="item.car_no" :value="item.id"> </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-input v-model="item.car_no" readonly v-else></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </span>
|
|
|
+ <span v-else-if="item.supply_type == '1'">
|
|
|
+ <el-form-item label="供应商">
|
|
|
+ <el-select v-model="item.client" placeholder="供应商" @change="changeClient" v-if="!item.is_js">
|
|
|
+ <el-option v-for="item in supClientList" :key="item.label" :label="item.name" :value="item.id"> </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-input v-model="item.client" readonly v-else></el-input>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="合同">
|
|
|
+ <el-select v-model="item.treaty" placeholder="合同" @change="changeTreaty" v-if="!item.is_js">
|
|
|
+ <el-option v-for="item in treatyList" :key="item.label" :label="item.number" :value="item.id"> </el-option>
|
|
|
+ </el-select>
|
|
|
+ <!-- <el-input v-model="item.treaty" readonly v-else></el-input> -->
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="项目">
|
|
|
+ <el-select
|
|
|
+ v-model="item.item"
|
|
|
+ placeholder="项目"
|
|
|
+ @change="
|
|
|
+ val => {
|
|
|
+ changeItem(val, index);
|
|
|
+ }
|
|
|
+ "
|
|
|
+ v-if="!item.is_js"
|
|
|
+ >
|
|
|
+ <el-option v-for="item in itemList" :key="item.label" :label="item.name" :value="item.id"> </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-input v-model="item.item" readonly v-else></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </span>
|
|
|
+ <span v-else-if="item.supply_type == '2'">
|
|
|
+ <el-form-item label="车牌号">
|
|
|
+ <el-input v-model="item.car_no" placeholder="车牌号" v-if="!item.is_js"></el-input>
|
|
|
+ <el-input v-model="item.car_no" placeholder="车牌号" v-else readonly></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </span>
|
|
|
<el-form-item label="税率">
|
|
|
<el-select
|
|
|
v-model="item.taxes"
|
|
@@ -97,22 +155,30 @@
|
|
|
selectChange(val, index);
|
|
|
}
|
|
|
"
|
|
|
+ v-if="!item.is_js"
|
|
|
>
|
|
|
<el-option v-for="(item, index) in rateList" :key="index" :label="item.label" :value="item.label"></el-option>
|
|
|
</el-select>
|
|
|
+ <el-input v-model="item.taxes" v-else readonly></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="税前应付">
|
|
|
- <el-input v-model="item.sq_ys" @change="change(index)"></el-input>
|
|
|
+ <el-input v-model="item.sq_ys" v-if="!item.is_js" @change="change(index)"></el-input>
|
|
|
+ <el-input v-model="item.sq_ys" v-else readonly></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="税后应付">
|
|
|
<el-input v-model="item.sh_ys" readonly></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="税前实付">
|
|
|
- <el-input v-model="item.sq_ss" @change="toChange(index)"></el-input>
|
|
|
+ <el-input v-model="item.sq_ss" v-if="!item.is_js" @change="toChange(index)"></el-input>
|
|
|
+ <el-input v-model="item.sq_ss" v-else readonly></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="税后实付">
|
|
|
<el-input v-model="item.sh_ss" readonly></el-input>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="备注">
|
|
|
+ <el-input v-model="item.remark" type="textarea" :rows="2" v-if="!item.is_js"></el-input>
|
|
|
+ <el-input v-model="item.remark" type="textarea" v-else readonly></el-input>
|
|
|
+ </el-form-item>
|
|
|
</el-form>
|
|
|
</el-col>
|
|
|
</el-tab-pane>
|
|
@@ -141,6 +207,12 @@ const { mapActions: client } = createNamespacedHelpers('client');
|
|
|
const { mapActions: dictionary } = createNamespacedHelpers('dictionary');
|
|
|
const { mapActions: outBill } = createNamespacedHelpers('outBill');
|
|
|
const { mapActions: user } = createNamespacedHelpers('user');
|
|
|
+// 项目表
|
|
|
+const { mapActions: project } = createNamespacedHelpers('project');
|
|
|
+// 合同
|
|
|
+const { mapActions: treaty } = createNamespacedHelpers('treaty');
|
|
|
+// 车牌表
|
|
|
+const { mapActions: car } = createNamespacedHelpers('car');
|
|
|
// 分页
|
|
|
import page from '@f/components/pagination.vue';
|
|
|
//查询search
|
|
@@ -163,6 +235,14 @@ export default {
|
|
|
clientList: [],
|
|
|
//用户列表
|
|
|
userList: [],
|
|
|
+ // 车牌号
|
|
|
+ carnoList: [],
|
|
|
+ // 供应商
|
|
|
+ supClientList: [],
|
|
|
+ // 合同
|
|
|
+ treatyList: [],
|
|
|
+ // 项目
|
|
|
+ itemList: [],
|
|
|
sform: {},
|
|
|
detailFields: [
|
|
|
{ label: '货物名', model: 'name' },
|
|
@@ -183,10 +263,14 @@ export default {
|
|
|
cost3: 0,
|
|
|
cost4: 0,
|
|
|
detailForm: {},
|
|
|
+ //判断是否结算
|
|
|
+ judge: true,
|
|
|
};
|
|
|
},
|
|
|
async created() {
|
|
|
await this.search();
|
|
|
+ await this.searchOther();
|
|
|
+ // await this.isTreaty();
|
|
|
},
|
|
|
methods: {
|
|
|
...order(['query', 'create', 'update', 'delete', 'fetch']),
|
|
@@ -194,6 +278,9 @@ export default {
|
|
|
...dictionary(['tree']),
|
|
|
...outBill(['outBill']),
|
|
|
...user({ getUserList: 'query' }),
|
|
|
+ ...car({ carQuery: 'query' }),
|
|
|
+ ...treaty({ treatyQuery: 'query' }),
|
|
|
+ ...project({ projectQuery: 'query' }),
|
|
|
|
|
|
async search({ skip = 0, limit = this.limit } = {}) {
|
|
|
//查订单
|
|
@@ -233,15 +320,31 @@ export default {
|
|
|
const { data, total } = res4;
|
|
|
this.$set(this, `userList`, data);
|
|
|
}
|
|
|
+ // 查供应商
|
|
|
+ const res5 = await this.clientQuery({ type: '供应商' });
|
|
|
+ if (this.$checkRes(res5)) {
|
|
|
+ const { data, total } = res5;
|
|
|
+ this.$set(this, `supClientList`, data);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 查询其他信息
|
|
|
+ async searchOther() {
|
|
|
+ let res = await this.carQuery();
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$set(this, `carnoList`, res.data);
|
|
|
+ }
|
|
|
},
|
|
|
//查看
|
|
|
async see(data) {
|
|
|
+ // console.log(data);
|
|
|
const res = await this.fetch(data.id);
|
|
|
if (res) this.$set(this, `detailForm`, res);
|
|
|
+ // console.log(this.detailForm);
|
|
|
if (this.detailForm.out_bill.length > 0) {
|
|
|
this.computRate();
|
|
|
}
|
|
|
this.dialog = true;
|
|
|
+ await this.isTreaty();
|
|
|
},
|
|
|
//添加选项卡
|
|
|
addTab(value) {
|
|
@@ -310,6 +413,7 @@ export default {
|
|
|
},
|
|
|
//保存
|
|
|
async save(data) {
|
|
|
+ // console.log(data);
|
|
|
const res = await this.outBill(this.detailForm);
|
|
|
if (this.$checkRes(res, '修改成功', res.errmsg || '修改失败')) {
|
|
|
this.back();
|
|
@@ -334,6 +438,57 @@ export default {
|
|
|
const obj = this.userList.find(i => i.id === data);
|
|
|
if (obj) return obj.name;
|
|
|
},
|
|
|
+ // 选择运输类型
|
|
|
+ // 选择自运&第三方时,路线赋值
|
|
|
+ changeSupply(value) {
|
|
|
+ // if (value == 0 || value == 2) {
|
|
|
+ // this.$set(this.form, `route`, this.depositRoute);
|
|
|
+ // }
|
|
|
+ console.log(value);
|
|
|
+ },
|
|
|
+ // 选择供应商,查询合同
|
|
|
+ async changeClient(value) {
|
|
|
+ console.log('查合同');
|
|
|
+ console.log(value);
|
|
|
+ let res = await this.treatyQuery({ client: value });
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$set(this, `treatyList`, res.data);
|
|
|
+ console.log(this.treatyList);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 选择合同,查询项目
|
|
|
+ async changeTreaty(value) {
|
|
|
+ let res = await this.projectQuery({ treaty: value });
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$set(this, `itemList`, res.data);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 选择项目,赋值税率
|
|
|
+ async changeItem(value, index) {
|
|
|
+ if (index) {
|
|
|
+ const projects = this.itemList.find(item => item.id === value);
|
|
|
+ let outBill = this.detailForm.out_bill[index];
|
|
|
+ this.$set(outBill, `taxes`, projects.taxes);
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ },
|
|
|
+ //选择供应商方式
|
|
|
+ getSupStyle(value) {
|
|
|
+ console.log(value);
|
|
|
+ },
|
|
|
+ //是否有供应商
|
|
|
+ async isTreaty() {
|
|
|
+ console.log(this.detailForm.out_bill);
|
|
|
+ let outList = this.detailForm.out_bill;
|
|
|
+ for (let item of outList) {
|
|
|
+ if (item.client) {
|
|
|
+ this.changeClient(item.client);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // if (this.detailForm.client) this.changeClient(this.detailForm.client);
|
|
|
+ // if (this.detailForm.treaty) this.changeTreaty(this.detailForm.treaty);
|
|
|
+ // if (this.detailForm.item) this.changeItem(this.detailForm.item);
|
|
|
+ },
|
|
|
},
|
|
|
computed: {
|
|
|
...mapState(['user']),
|