|
@@ -5,12 +5,12 @@
|
|
|
<div class="drawer__panel">
|
|
|
<el-row :gutter="20">
|
|
|
<el-form :model="form" :rules="rules" ref="form" size="small" label-position="right" label-width="100px">
|
|
|
- <el-col :span="12">
|
|
|
+ <el-col :span="8">
|
|
|
<el-form-item label="商品组名称:" prop="groupname">
|
|
|
<el-input v-model="form.groupname" placeholder="请输入商品组名称"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="12">
|
|
|
+ <el-col :span="8">
|
|
|
<el-form-item label="品牌:" prop="sa_brandid">
|
|
|
<el-select v-model="form.sa_brandid" placeholder="请选择品牌" @change="getProductList(params.content.pageNumber = 1,$refs.table.allArr=[])" style="width: 100%">
|
|
|
<el-option v-for="item in brandList()" :key="item.sa_brandid" :label="item.brandname"
|
|
@@ -19,33 +19,19 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="24" style="margin-bottom: 20px;margin-top: 22px">
|
|
|
- <label class="inline-16" style="font-size: 14px">可选商品:</label>
|
|
|
- <el-input placeholder="请输入搜索内容" suffix-icon="el-icon-search" v-model="search" @keyup.native.enter="queryClick" @clear="clearData()" style="width:260px;float: right" size="small" class="input-with-select inline-16" clearable>
|
|
|
- </el-input>
|
|
|
- </el-col>
|
|
|
<el-col :span="24">
|
|
|
- <Table ref="table" v-model="form.itemno" :layout="tablecols" :data="productList" :custom="true" height="500px" @upDateData="upDateData">
|
|
|
- <template v-slot:customcol="scope">
|
|
|
- <div v-if="scope.column.columnname=='cover'">
|
|
|
- <previewImage style="width:38px;height:38px;margin:0px" v-if="scope.column.data.attinfos[0] && scope.column.data.attinfos[0].url" :image="scope.column.data.attinfos[0]" :deletebtn="false"></previewImage>
|
|
|
- </div>
|
|
|
- <div v-else>{{scope.column.data[scope.column.columnname]}}</div>
|
|
|
- </template>
|
|
|
- </Table>
|
|
|
- <div class="container normal-panel" style="text-align:right">
|
|
|
- <el-pagination
|
|
|
- style="text-align:right"
|
|
|
- background
|
|
|
- small
|
|
|
- @size-change="handleSizeChange"
|
|
|
- @current-change="handleCurrentChange"
|
|
|
- :current-page="params.content.pageNumber"
|
|
|
- :page-sizes="[20, 50, 100, 200]"
|
|
|
- layout="total,sizes, prev, pager, next, jumper"
|
|
|
- :total="total">
|
|
|
- </el-pagination>
|
|
|
- </div>
|
|
|
+ <p class="normal-title normal-margin">
|
|
|
+ 添加产品
|
|
|
+ <el-button v-if="col === 0" type="text" size="mini" @click="col = 12">选择商品</el-button>
|
|
|
+ <el-button v-else type="text" size="mini" @click="col = 0">关闭选择</el-button>
|
|
|
+ </p>
|
|
|
+
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24 - col">
|
|
|
+ <Table :data="tableData" ref="submitProduct" @onSuccess="onSuccess" @deleteProduct="deleteProduct"></Table>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="col">
|
|
|
+ <selectTable @addProduct="addProduct"></selectTable>
|
|
|
</el-col>
|
|
|
</el-form>
|
|
|
</el-row>
|
|
@@ -60,20 +46,16 @@
|
|
|
|
|
|
<script>
|
|
|
import previewImage from '@/components/previewImage/index.vue'
|
|
|
-import Table from './table'
|
|
|
+import selectTable from '@/template/product/index.vue'
|
|
|
+import Table from './table.vue'
|
|
|
export default {
|
|
|
props: ['data', 'type'],
|
|
|
- components:{Table,previewImage},
|
|
|
+ components:{selectTable,previewImage,Table},
|
|
|
data () {
|
|
|
return {
|
|
|
drawer:false,
|
|
|
- dseleteGroup: '',
|
|
|
- inputVisible: false,
|
|
|
- inputValue: '',
|
|
|
- productList:[],
|
|
|
- tablecols:[],
|
|
|
- total:0,
|
|
|
- search:'',
|
|
|
+ col:0,
|
|
|
+ tableData:[],
|
|
|
form: {
|
|
|
sa_brandid: '',
|
|
|
groupname: '',
|
|
@@ -90,123 +72,68 @@ export default {
|
|
|
itemno: [
|
|
|
{ required: true, message: '请选择商品', trigger: 'blur' },
|
|
|
]
|
|
|
- },
|
|
|
- params: {
|
|
|
- "id": "20220923112503",
|
|
|
- "version":1,
|
|
|
- "content": {
|
|
|
- "nocache":true,
|
|
|
- "sa_itemgroupid":"",
|
|
|
- "pageNumber":1,
|
|
|
- "pageSize":20,
|
|
|
- "where":{
|
|
|
- "condition":""
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
inject:['brandList'],
|
|
|
created () {
|
|
|
- this.tablecols = this.tool.tabelCol(this.$route.name)['addProductTable'].tablecols
|
|
|
- if (this.brandList()) {
|
|
|
- this.form.sa_brandid = this.brandList()[0].sa_brandid
|
|
|
- }
|
|
|
- console.log(this.brandList());
|
|
|
-
|
|
|
- this.getProductList()
|
|
|
},
|
|
|
methods: {
|
|
|
- upDateData (data) {
|
|
|
- if (data.length == 0) {
|
|
|
- this.form.itemno = ''
|
|
|
- } {
|
|
|
- this.form.itemno = true
|
|
|
- }
|
|
|
- },
|
|
|
- /* 可选择的商品列表 */
|
|
|
- async getProductList() {
|
|
|
- this.params.content.sa_brandid = this.form.sa_brandid
|
|
|
- let res = await this.$api.requested(this.params)
|
|
|
- this.productList = res.data
|
|
|
- this.total = res.total
|
|
|
- console.log(this.productList,'商品');
|
|
|
- },
|
|
|
- submit () {
|
|
|
- this.$refs.form.validate(async val => {
|
|
|
- if (val) {
|
|
|
- let res = await this.$api.requested({
|
|
|
- "id": "20220922164303",
|
|
|
- "content": {
|
|
|
- "sa_itemgroupid": 0,
|
|
|
- "sa_brandid": this.form.sa_brandid,
|
|
|
- "groupname": this.form.groupname,
|
|
|
- "itemno": "",
|
|
|
- "tag": []
|
|
|
- }
|
|
|
- })
|
|
|
- this.tool.showMessage(res, async () => {
|
|
|
- let itemno = this.$refs.table.allArr.map(item => {
|
|
|
- return {
|
|
|
- sa_itemgroupmxid:0,
|
|
|
- itemno:item.itemno,
|
|
|
- itemid:item.itemid
|
|
|
- }
|
|
|
- })
|
|
|
- let res2 = await this.$api.requested({
|
|
|
- "id": "20220923110303",
|
|
|
- "version": 1,
|
|
|
- "content": {
|
|
|
- "sa_itemgroupid": res.data.sa_itemgroupid,
|
|
|
- "itemclassinfos": itemno
|
|
|
- }
|
|
|
- })
|
|
|
- await this.$api.requested({
|
|
|
- "id": "20220922164303",
|
|
|
- "content": {
|
|
|
- "sa_itemgroupid": res.data.sa_itemgroupid,
|
|
|
- "sa_brandid": this.form.sa_brandid,
|
|
|
- "groupname": this.form.groupname,
|
|
|
- "itemno": itemno[0].itemno,
|
|
|
- "tag": []
|
|
|
- }
|
|
|
- })
|
|
|
- this.$emit('onSuccess')
|
|
|
- this.$refs.form.resetFields()
|
|
|
- this.$refs.table.allArr = []
|
|
|
- this.drawer = false
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- handleSizeChange(val) {
|
|
|
- // console.log(`每页 ${val} 条`);
|
|
|
- this.params.content.pageSize = val
|
|
|
- this.getProductList()
|
|
|
- },
|
|
|
- handleCurrentChange(val) {
|
|
|
- // console.log(`当前页: ${val}`);
|
|
|
- this.params.content.pageNumber = val
|
|
|
- this.getProductList()
|
|
|
- },
|
|
|
onCancel(){
|
|
|
this.drawer = false
|
|
|
- this.$refs.form.resetFields()
|
|
|
- this.$refs.table.allArr = []
|
|
|
this.form={
|
|
|
sa_brandid: '',
|
|
|
groupname: '',
|
|
|
itemno: '',
|
|
|
tag: []
|
|
|
- }
|
|
|
+ },
|
|
|
+ this.tableData = []
|
|
|
+ },
|
|
|
+ addProduct (row) {
|
|
|
+ this.tableData.push(row)
|
|
|
+ const res = new Map();
|
|
|
+ this.tableData = this.tableData.filter((item) => !res.has(item['itemid']) && res.set(item['itemid'], 1));
|
|
|
+ },
|
|
|
+ deleteProduct (row) {
|
|
|
+ this.tableData = this.tableData.filter(e=>{
|
|
|
+ return e.itemid !== row.itemid
|
|
|
+ })
|
|
|
},
|
|
|
- clearData(){
|
|
|
- this.search = ""
|
|
|
- this.queryClick()
|
|
|
+ async submit() {
|
|
|
+ if (this.tableData.length === 0)
|
|
|
+ return this.$message({
|
|
|
+ message:'商品组明细不能为空',
|
|
|
+ type:'error'
|
|
|
+ })
|
|
|
+ const res = await this.$api.requested({
|
|
|
+ "id": "20220922164303",
|
|
|
+ "content": {
|
|
|
+ "sa_itemgroupid":0, //sa_itemgroupid<=0时 为新增
|
|
|
+ "sa_brandid":this.form.sa_brandid,
|
|
|
+ "groupname":this.form.groupname,
|
|
|
+ "itemno":"",
|
|
|
+ "tag": []
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.tool.showMessage(res,()=>{
|
|
|
+ this.groupdata = res.data
|
|
|
+ this.$refs['submitProduct'].submitProduct(res.data.sa_itemgroupid)
|
|
|
+ })
|
|
|
},
|
|
|
- queryClick(){
|
|
|
- this.params.content.where.condition = this.search
|
|
|
- this.getProductList()
|
|
|
+ async onSuccess () {
|
|
|
+ const res = await this.$api.requested({
|
|
|
+ "id": "20220922164303",
|
|
|
+ "content": {
|
|
|
+ "sa_itemgroupid":this.groupdata.sa_itemgroupid, //sa_itemgroupid<=0时 为新增
|
|
|
+ "sa_brandid":this.groupdata.sa_brandid,
|
|
|
+ "groupname":this.groupdata.groupname,
|
|
|
+ "itemno":this.tableData[0].itemno,
|
|
|
+ "tag": []
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.$emit('onSuccess')
|
|
|
+ this.drawer = false
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|