|
@@ -2,7 +2,6 @@
|
|
|
<div class="borderless">
|
|
|
<div class="customer-head">
|
|
|
<div class="customer-back">
|
|
|
- <!-- <i class="back-icon el-icon-arrow-left"></i><i style="font-style:normal">返回管理列表</i>-->
|
|
|
<el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
|
|
|
@click="backToList">返回列表
|
|
|
</el-button>
|
|
@@ -21,8 +20,7 @@
|
|
|
<basic-container style="margin-bottom: 10px">
|
|
|
<el-row>
|
|
|
<el-col v-for="(item,index) in basicData.column" :key="index" :span="item.span?item.span:8">
|
|
|
- <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
|
|
|
-<!-- <avue-input-tree v-if="item.prop === 'corpsTypeId'" leaf-only multiple :props="{label:'title'}"v-model="form[item.prop]" placeholder="请选择内容" type="tree" :dic="dic"/>-->
|
|
|
+ <el-form-item label-width="150px" :label="item.label" :prop="item.prop" :rules="item.rules">
|
|
|
<el-date-picker v-if="item.type === 'datetime'" style="width: 100%;" v-model="form[item.prop]" size="small" type="datetime" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss"/>
|
|
|
<span v-else-if="item.type === 'select'">
|
|
|
<el-select v-model="form[item.prop]" slot="prepend" style="width: 100%;" size="small" placeholder="请选择">
|
|
@@ -46,8 +44,9 @@
|
|
|
@row-update="rowUpdate"
|
|
|
@row-del="rowDel">
|
|
|
<template slot="code" slot-scope="{row,index}">
|
|
|
- <span style="float: left;padding-top: 2px">{{ row.code }}</span>
|
|
|
- <el-button type="text" size="mini" style="float: right" @click="commodityChoice(row)">选择</el-button>
|
|
|
+ <span v-if="row.$cellEdit" style="float: left;color: #F56C6C;">*</span>
|
|
|
+ <span style="margin-left: 12px;padding-top: 2px">{{ row.code }}</span>
|
|
|
+ <el-button type="text" v-if="row.$cellEdit" size="mini" style="float: right" @click="commodityChoice(row,index)">选择</el-button>
|
|
|
</template>
|
|
|
<template slot-scope="{row,index}" slot="menu">
|
|
|
<el-button
|
|
@@ -61,11 +60,53 @@
|
|
|
</basic-container>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
+ <el-dialog
|
|
|
+ title="导入商品"
|
|
|
+ append-to-body
|
|
|
+ class="el-dialogDeep"
|
|
|
+ :visible.sync="dialogVisible"
|
|
|
+ width="80%"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :destroy-on-close="true"
|
|
|
+ :close-on-press-escape="false">
|
|
|
+ <el-row style="height: 0;">
|
|
|
+ <el-col :span="5">
|
|
|
+ <div>
|
|
|
+ <el-scrollbar>
|
|
|
+ <basic-container>
|
|
|
+ <avue-tree :option="treeOption" :data="treeData" @node-click="nodeClick"/>
|
|
|
+ </basic-container>
|
|
|
+ </el-scrollbar>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="19">
|
|
|
+ <basic-container>
|
|
|
+ <avue-crud :option="optionTwo"
|
|
|
+ :table-loading="loading"
|
|
|
+ :data="data"
|
|
|
+ ref="crud"
|
|
|
+ @refresh-change="refreshChange"
|
|
|
+ @selection-change="selectionChange"
|
|
|
+ :page.sync="page"
|
|
|
+ @on-load="onLoad">
|
|
|
+
|
|
|
+ </avue-crud>
|
|
|
+ </basic-container>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="dialogVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="importGoods()" :disabled="this.tableData.length == 1 ? false:true">导 入</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
import customerContact from "./configuration/customerContact.json"
|
|
|
import {detail,corpsattn,typeSave} from "@/api/maintenance/priceManagement"
|
|
|
+import commodity from "../../salesManagement/salesContract/config/commodity.json";
|
|
|
+import {getList} from "@/api/basicData/configuration"
|
|
|
+import {getDeptLazyTreeTwo} from "@/api/basicData/basicFeesDesc";
|
|
|
|
|
|
export default {
|
|
|
name: "detailsPage",
|
|
@@ -158,7 +199,44 @@ export default {
|
|
|
]
|
|
|
}
|
|
|
]
|
|
|
- }
|
|
|
+ },
|
|
|
+ //导入商品
|
|
|
+ detailsSelect:"",
|
|
|
+ treeDeptId:'',
|
|
|
+ tableData:[],
|
|
|
+ dialogVisible: false,
|
|
|
+ treeOption: {
|
|
|
+ nodeKey: 'id',
|
|
|
+ lazy: true,
|
|
|
+ treeLoad: function (node, resolve) {
|
|
|
+ const parentId = (node.level === 0) ? 0 : node.data.id;
|
|
|
+ getDeptLazyTreeTwo(parentId).then(res => {
|
|
|
+ resolve(res.data.data.map(item => {
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ leaf: !item.hasChildren
|
|
|
+ }
|
|
|
+ }))
|
|
|
+ });
|
|
|
+ },
|
|
|
+ addBtn: false,
|
|
|
+ menu: false,
|
|
|
+ size: 'small',
|
|
|
+ props: {
|
|
|
+ labelText: '标题',
|
|
|
+ label: 'title',
|
|
|
+ value: 'value',
|
|
|
+ children: 'children'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ optionTwo: commodity,
|
|
|
+ loading: false,
|
|
|
+ data: [],
|
|
|
+ page: {
|
|
|
+ pageSize: 10,
|
|
|
+ currentPage: 1,
|
|
|
+ total: 0
|
|
|
+ },
|
|
|
}
|
|
|
},
|
|
|
//初始化查询
|
|
@@ -232,9 +310,21 @@ export default {
|
|
|
},
|
|
|
//修改提交触发
|
|
|
editCustomer() {
|
|
|
- console.log(this.form)
|
|
|
this.$refs["form"].validate((valid) => {
|
|
|
- if (valid) {
|
|
|
+ //校验明细列表
|
|
|
+ let valids = true;
|
|
|
+ if(this.contactsData.length !=0){
|
|
|
+ this.contactsData.forEach((item) =>{
|
|
|
+ if((!item.code || !item.bigCharacter) && valids){
|
|
|
+ this.$message({
|
|
|
+ type: "warning",
|
|
|
+ message: "请检查明细列表第 "+(item.$index +1 )+" 行必填项"
|
|
|
+ });
|
|
|
+ valids = false;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (valid && valids) {
|
|
|
this.form.priceItemList = this.contactsData
|
|
|
typeSave(this.form).then(res=>{
|
|
|
this.$message({
|
|
@@ -248,6 +338,44 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ //选择
|
|
|
+ commodityChoice(row,index){
|
|
|
+ this.dialogVisible = true;
|
|
|
+ this.detailsSelect = index
|
|
|
+ },
|
|
|
+ //导入页左商品类型查询
|
|
|
+ nodeClick(data) {
|
|
|
+ this.treeDeptId = data.id;
|
|
|
+ this.page.currentPage = 1;
|
|
|
+ this.onLoad(this.page);
|
|
|
+ },
|
|
|
+ //刷新触发
|
|
|
+ refreshChange() {
|
|
|
+ this.treeDeptId = '';
|
|
|
+ this.page.currentPage = 1;
|
|
|
+ this.onLoad(this.page);
|
|
|
+ },
|
|
|
+ //选中触发
|
|
|
+ selectionChange(list) {
|
|
|
+ this.tableData = list
|
|
|
+ },
|
|
|
+ //商品列表查询
|
|
|
+ onLoad(page, params = {}) {
|
|
|
+ this.loading = true;
|
|
|
+ getList(page.currentPage, page.pageSize, Object.assign(params, this.query), this.treeDeptId).then(res => {
|
|
|
+ const data = res.data.data;
|
|
|
+ this.page.total = data.total;
|
|
|
+ this.data = data.records;
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //导入
|
|
|
+ importGoods(){
|
|
|
+ if(this.tableData){
|
|
|
+ this.contactsData[this.detailsSelect].code = this.tableData[0].code;
|
|
|
+ this.dialogVisible = !this.dialogVisible
|
|
|
+ }
|
|
|
+ },
|
|
|
//返回列表
|
|
|
backToList() {
|
|
|
this.$router.$avueRouter.closeTag();
|