添加:供应链添加

This commit is contained in:
wuhui_zzw 2024-01-17 16:26:58 +08:00
parent 85a417b451
commit 87d7ec53f7
6 changed files with 125 additions and 125 deletions

14
src/api/supplier.js Normal file
View File

@ -0,0 +1,14 @@
import request from './request'
// 账号管理 - 添加账号
export function accountCreate(data) {
return request.post(`system/supplier/accountCreate`,data)
}
// 供应商信息 - 供应商列表
export function supplierList(data) {
return request.get(`system/supplier/list`,data)
}

View File

@ -479,7 +479,7 @@ const marketingRouter =
path: 'pickupPoint',
name: `exchangePickupPoint`,
meta: {
title: '取货点',
title: '酒道馆',
noCache: true
},
component: () => import('@/views/marketing/exchange/pickupPoint/index')

View File

@ -12,14 +12,14 @@
</el-input>
</el-form-item>
<el-form-item class="width100">
<el-button size="small" type="primary" @click="addPickupPoint(0)">添加取货点</el-button>
<el-button size="small" type="primary" @click="addPickupPoint(0)">添加酒道馆</el-button>
</el-form-item>
</el-form>
</div>
</div>
<!--表格信息-->
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="提货点管理" name="list">
<el-tab-pane label="酒道馆管理" name="list">
<el-table v-loading="listLoading" :data="tableData.data" style="width: 100%" size="mini">
<el-table-column prop="id" label="ID" min-width="100" align="center"/>
<el-table-column label="名称" prop="title" align="center"/>
@ -80,7 +80,7 @@
</div>
</template>
</el-table-column>
<el-table-column label="提货点" min-width="150" align="center">
<el-table-column label="酒道馆" min-width="150" align="center">
<template slot-scope="scope">
{{ scope.row.point_title }}<br />
{{ scope.row.point_address }}
@ -112,11 +112,11 @@
<el-form ref="editInfoField" size="small" :rules="ruleValidate" :model="editInfo" label-width="130px" @submit.native.prevent>
<el-tabs type="border-card">
<div class="section">
<div class="title">取货点信息</div>
<div class="title">酒道馆信息</div>
<el-row>
<el-col :span="12">
<el-form-item label="名称:" prop="title">
<el-input v-model="editInfo.title" placeholder="请填写取货点名称" />
<el-input v-model="editInfo.title" placeholder="请填写酒道馆名称" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -133,7 +133,7 @@
</el-col>
<el-col :span="24">
<el-form-item label="详细地址:" prop="address">
<el-input v-model="editInfo.address" placeholder="请填写取货点详细地址" />
<el-input v-model="editInfo.address" placeholder="请填写酒道馆详细地址" />
</el-form-item>
</el-col>
</el-row>
@ -189,7 +189,7 @@
</template>
</el-table-column>
<el-table-column label="联系电话" prop="phone" min-width="150" align="center"/>
<el-table-column label="是否为当前取货点负责人" min-width="200" align="center">
<el-table-column label="是否为当前酒道馆负责人" min-width="200" align="center">
<template slot-scope="scope">
<el-tag type="success" v-if="Object.values(editInfo.uid_list).includes(String(scope.row.uid))" effect="dark"></el-tag>
<el-tag type="info" v-else effect="dark">不是</el-tag>
@ -260,9 +260,9 @@ export default {
},
activeName: 'list',
ruleValidate: {
title: [{ required: true, message: '请填写取货点名称', trigger: 'blur' }],
lat: [{ required: true, message: '请选择取货点经纬度', trigger: 'blur' }],
address: [{ required: true, message: '请填写取货点详细地址', trigger: 'blur' }],
title: [{ required: true, message: '请填写酒道馆名称', trigger: 'blur' }],
lat: [{ required: true, message: '请选择酒道馆经纬度', trigger: 'blur' }],
address: [{ required: true, message: '请填写酒道馆详细地址', trigger: 'blur' }],
},
//
userSelectVisible: false,

View File

@ -72,7 +72,7 @@
</div>
</div>
<!--具体内容-->
<supplierEditForm ref="editForm" :supplierId="supplierId" :isAdd="isAdd" :merData="merData" @modifyCopy="modifyCopy" @success="editSuccess" v-if="isEdit || isAdd"></supplierEditForm>
<supplierEditForm ref="editForm" :supplierId="supplierId" :isAdd="isAdd" :merData="merData" @success="editSuccess" v-if="isEdit || isAdd"></supplierEditForm>
<supplierInfo ref="supplierInfo" :merData="merData" v-else-if="!isEdit && !isAdd"></supplierInfo>
</div>
<div v-if="isAdd" class="footer">
@ -158,10 +158,6 @@ export default {
this.isEdit = false;
}
this.$emit('getList')
},
//
modifyCopy(){
this.$emit('handleTimes',this.supplierId);
},
//
handleCommand() {

View File

@ -69,8 +69,9 @@
</template>
<script>
import { merCategoryListApi } from '@/api/product'
import { getstoreTypeApi, merchantUpdate, merchantCreate } from "@/api/merchant";
import { merchantUpdate } from "@/api/merchant";
import {accountCreate} from "@/api/supplier";
export default {
props: {
merData: {
@ -83,62 +84,46 @@ export default {
}
},
data() {
const validatePhone = (rule, value, callback) => {
if (!value) {
return callback(new Error('请填写联系方式'))
} else if (!/^1[3456789]\d{9}$/.test(value)) {
callback(new Error('格式不正确!'))
} else {
callback()
}
}
return {
loading: false,
supplierId: '',
direction: 'rtl',
activeName: 'detail',
merCateList: [],
storeType: [],
ruleValidate: {
supplier_name: [{ required: true, message: '请输入供应商名称', trigger: 'blur' }],
supplier_account: [{ required: true, message: '请输入账号', trigger: 'blur' }],
supplier_password: [{ required: true, message: '请输入登录密码', trigger: 'blur' }],
name: [{ required: true, message: '请输入联系人姓名', trigger: 'blur' }],
phone: [
{
required: true, validator: function (rule, value, callback) {
if (!value) {
return callback(new Error('请填写联系方式'))
} else if (!/^1[3456789]\d{9}$/.test(value)) {
callback(new Error('格式不正确!'))
} else {
callback()
}
}, trigger: 'blur'
}
],
},
};
},
filters: {
},
mounted() {
this.getCategorySelect();
this.getStoreType()
},
filters: {},
mounted() {},
methods: {
//
getCategorySelect() {
merCategoryListApi().then(res => {
this.merCateList = res.data.list
}).catch(res => {
this.$message.error(res.message)
})
},
/**获取店铺类型 */
getStoreType(){
getstoreTypeApi().then(res => {
this.storeType = res.data
}).catch(res => {
this.$message.error(res.message)
})
},
/**修改采集次数 */
modifyCopy() {
this.$emit('modifyCopy')
},
/**重置表单数据 */
//
resetData(){
this.$refs.merDataField.resetFields();
},
/*提交信息*/
onSubmit(id){
console.log('onSubmit',id)
return false;
this.$refs['merDataField'].validate(valid => {
if (valid) {
this.loading = true;
@ -155,24 +140,17 @@ export default {
}
});
},
/**创建商户 */
//
handleCreate(){
this.$refs['merDataField'].validate((valid) => {
let _this = this;
_this.$refs['merDataField'].validate((valid) => {
if (valid) {
merchantCreate(this.merData)
.then(async (res) => {
this.$message.success(res.message);
this.$emit('success');
})
.catch((res) => {
this.$message.error(res.message);
});
} else {
if(!this.merData.supplier_name)return this.$message.error('请填写基本信息-供应商名称');
if(!this.merData.category_id)return this.$message.error('请选择基本信息-商户分类');
if(!this.merData.type_id)return this.$message.error('请选择基本信息-店铺类型');
if(!this.merData.mer_account)return this.$message.error('请填写账号信息-商户账号');
if(!this.merData.mer_phone)return this.$message.error('请填写账号信息-联系电话');
accountCreate(_this.merData).then(async (res) => {
_this.$message.success(res.message);
_this.$emit('success');
}).catch((res) => {
_this.$message.error(res.message);
});
}
});
}

View File

@ -5,21 +5,36 @@
<div slot="header" class="clearfix">
<div class="container">
<el-form size="small" label-width="100px" :inline="true">
<el-form-item label="关键字:" label-width="80px" style="display: inline-block;">
<el-input style="width: 350px" v-model="tableFrom.keyword" @keyup.enter.native="getList(1)" placeholder="请输入供应商名称/联系人姓名/联系电话" class="selWidth">
<el-button slot="append" icon="el-icon-search" class="el-button-solt" @click="getList(1)" />
</el-input>
<el-form-item label="供应商名称:" label-width="100px" style="display: inline-block;">
<el-input style="width: 350px" v-model="tableFrom.supplier_name" placeholder="请输入供应商名称" class="selWidth"></el-input>
</el-form-item>
<el-form-item label="联系人姓名:" label-width="100px" style="display: inline-block;">
<el-input style="width: 350px" v-model="tableFrom.name" placeholder="请输入联系人姓名" class="selWidth"></el-input>
</el-form-item>
<el-form-item label="联系电话:" label-width="100px" style="display: inline-block;">
<el-input style="width: 350px" v-model="tableFrom.phone" placeholder="请输入联系电话" class="selWidth"></el-input>
</el-form-item>
<el-form-item label="状态:" label-width="100px" style="display: inline-block;">
<el-select v-model="tableFrom.is_show" clearable filterable placeholder="请选择" class="selWidth">
<el-option label="开启" :value="1" />
<el-option label="关闭" :value="0" />
</el-select>
</el-form-item>
</el-form>
</div>
<el-button size="small" type="primary" @click="addSupplier">添加供应商</el-button>
<el-button size="small" type="success" @click="addSupplier">添加供应商</el-button>
<el-button size="small" type="primary" @click="getList(1)">搜索</el-button>
</div>
<!--列表-->
<el-table v-loading="listLoading" :data="tableData.data" style="width: 100%" size="small" highlight-current-row class="switchTable">
<el-table-column prop="mer_id" label="ID" min-width="60" />
<el-table-column prop="mer_name" label="商户名称" min-width="150" />
<el-table-column prop="real_name" label="商户姓名" min-width="150" />
<el-table-column prop="status" label="推荐" min-width="100">
<template slot-scope="scope">
<el-switch
@ -55,7 +70,6 @@
</el-table-column>
<el-table-column prop="sort" label="排序" min-width="100" />
<el-table-column prop="mark" label="备注" min-width="200" />
<el-table-column label="操作" min-width="150" fixed="right" align="center">
<template slot-scope="scope">
<!-- <router-link
@ -107,7 +121,6 @@
@closeDrawer="closeDrawer"
@changeDrawer="changeDrawer"
@onPassword="onPassword"
@handleTimes="handleTimes"
@getList="getList"
:drawer="drawer"
></supplier-detail>
@ -138,15 +151,34 @@ import { fromList } from "@/libs/constants.js";
import { roterPre } from "@/settings";
import SettingMer from "@/libs/settingMer";
import Cookies from "js-cookie";
import {supplierList} from "@/api/supplier";
export default {
name: "SupplierList",
components: { supplierDetail },
data() {
return {
listLoading: true,
tableFrom: {
page: 1,
limit: 20,
supplier_name: "",
name: "",
phone: "",
is_show: "",
},
tableData: {
data: [],
total: 0
},
fromList: fromList,
roterPre: roterPre,
isChecked: false,
listLoading: true,
merCateList: [],
storeType: [],
headeNum: [
@ -161,21 +193,7 @@ export default {
title: "已关闭商户"
}
],
tableData: {
data: [],
total: 0
},
tableFrom: {
page: 1,
limit: 20,
date: "",
status: "1",
keyword: "",
is_trader: "",
is_best: "",
category_id: '',
type_id: ""
},
autoUpdate: true,
supplierId: "",
drawer: false,
@ -194,8 +212,29 @@ export default {
this.drawer = true;
this.$refs.supplierDetail.initData();
},
//
getList(num) {
this.listLoading = true;
this.tableFrom.page = num ? num : this.tableFrom.page;
supplierList(this.tableFrom)
.then(res => {
this.tableData.data = res.data.list;
this.tableData.total = res.data.count;
this.listLoading = false;
})
.catch(res => {
this.listLoading = false;
this.$message.error(res.message);
});
},
pageChange(page) {
this.tableFrom.page = page;
this.getList("");
},
handleSizeChange(val) {
this.tableFrom.limit = val;
this.getList(1);
},
@ -253,29 +292,6 @@ export default {
this.$message.error(res.message)
})
},
//
getList(num) {
this.listLoading = true;
this.tableFrom.page = num ? num : this.tableFrom.page;
merchantListApi(this.tableFrom)
.then(res => {
this.tableData.data = res.data.list;
this.tableData.total = res.data.count;
this.listLoading = false;
})
.catch(res => {
this.listLoading = false;
this.$message.error(res.message);
});
},
pageChange(page) {
this.tableFrom.page = page;
this.getList("");
},
handleSizeChange(val) {
this.tableFrom.limit = val;
this.getList(1);
},
//
onchangeIsShow(row) {
const title = row.is_best === 0 ? "是否开启推荐商户" : "是否关闭推荐商户";
@ -331,10 +347,6 @@ export default {
onDeduct(id) {
this.$modalForm(marginDeductionForm(id)).then(() => this.getList(""));
},
//
handleTimes(id) {
this.$modalForm(changeCopyApi(id)).then(() => this.getList(""));
},
//
onPassword(id) {