From 91ca5d3a9d43f1b73fe6ff1b8a0d5dda599fbb7d Mon Sep 17 00:00:00 2001
From: zhouhao <787329763@qq.com>
Date: Wed, 03 Nov 2021 14:03:07 +0800
Subject: [PATCH] 代理新增编辑门店信息功能完成
---
src/api/index.js | 7 +
src/store/index.js | 8 +
src/views/mine/stores/stores.vue | 317 ++++++++++++++++++++++++++--------------------------
src/views/mine/stores/stores-detail.vue | 12 +
src/views/mine/mer/mer-info.vue | 11 +
5 files changed, 189 insertions(+), 166 deletions(-)
diff --git a/src/api/index.js b/src/api/index.js
index 54c2124..c939f81 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -124,6 +124,11 @@
merAudit(data) {
return $http.post("/merchant/audit", data);
},
+
+ //更新商户信息
+ updateMer(data) {
+ return $http.post("/merchant/updateMer", data);
+ },
// /merchant/auditList
@@ -150,7 +155,7 @@
},
//编辑门店
storeEdit(data) {
- return $http.post("/store/edit", data);
+ return $http.post("/store/update", data);
},
//添加门店
storeAdd(data) {
diff --git a/src/store/index.js b/src/store/index.js
index d3ff808..f8f15a0 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -304,6 +304,14 @@
path: '/user/register'
});
}
+ if (orgType === 1) { // 代理角色新增门店管理功能
+ userPage.push({
+ powerId: 100004,
+ icon: 'iconshanghuguanli',
+ label: '门店管理',
+ path: '/mine/stores'
+ });
+ }
commit(SET_FOOTER_NAV, footernav);
commit(SET_USER_PAGE, userPage);
commit(SET_USER_INFO, data.body);
diff --git a/src/views/mine/mer/mer-info.vue b/src/views/mine/mer/mer-info.vue
index d28723e..c88dc8b 100644
--- a/src/views/mine/mer/mer-info.vue
+++ b/src/views/mine/mer/mer-info.vue
@@ -7,7 +7,7 @@
-->
<template>
<div class="mer-info-box h-100-g">
- <v-navbar title="商户信息" fixed></v-navbar>
+ <v-navbar title="商户信息" fixed rightText="保存" @right-click="Save"></v-navbar>
<div class="content">
<div class="cell-group">
@@ -15,7 +15,7 @@
<v-cell v-model="info.merName" :Show_input="false" label='商户名称' icon='iconmobanguanliliebiao' readonly placeholder='请输入营业执照号' @click.native="copyText"></v-cell>
<v-cell v-model="info.licenseNo" :Show_input="false" label='营业执照号' icon='iconyinhangka' readonly placeholder='请输入身份证号'></v-cell>
<v-cell v-model="Addrs" :Show_input="false" label='所在地区' icon='icondingwei' readonly placeholder='请选择'></v-cell>
- <v-cell v-model="info.addr.dtlAddr" :Show_input="false" label='详细地址' icon='icontishi' readonly placeholder='请输入详细地址'></v-cell>
+ <v-cell v-model="info.addr.dtlAddr" label='详细地址' icon='icontishi' placeholder='请输入详细地址'></v-cell>
</div>
<div class="cell-group">
@@ -119,7 +119,12 @@
// on cancel
});
},
-
+ Save(){ //保存
+ if(this.info.addr.dtlAddr=='' || this.info.addr.dtlAddr==null ) return this.$notify({ type: 'danger', message: '请输入详细地址!' })
+ this.$api.updateMer({merId:this.$route.query.merId,addr:{...this.info.addr}}).then(res=>{
+ this.$notify_success('更新商户信息成功!')
+ })
+ }
}
}
</script>
diff --git a/src/views/mine/stores/stores-detail.vue b/src/views/mine/stores/stores-detail.vue
index d786e69..3b501b3 100644
--- a/src/views/mine/stores/stores-detail.vue
+++ b/src/views/mine/stores/stores-detail.vue
@@ -16,10 +16,10 @@
</div>
<div class="cell-group">
- <v-cell v-model="form.priName" :max="6" label="负责人姓名" :readonly="true" placeholder="负责人姓名"></v-cell>
- <v-cell v-model="form.priMblNo" :max="11" type="tel" label="负责人手机号" :readonly="true" placeholder="负责人手机号"></v-cell>
- <v-cell v-model="form.priEmail" :max="50" label="联系邮箱" :readonly="true" placeholder="联系邮箱"></v-cell>
- <v-cell v-model="form.priIdNo" :max="18" label="负责人身份证号" :readonly="true" placeholder="负责人身份证号"></v-cell>
+ <v-cell v-model="form.priName" :max="6" label="负责人姓名" placeholder="负责人姓名"></v-cell>
+ <v-cell v-model="form.priMblNo" :max="11" type="tel" label="负责人手机号" placeholder="负责人手机号"></v-cell>
+ <v-cell v-model="form.priEmail" :max="50" label="联系邮箱" placeholder="联系邮箱"></v-cell>
+ <v-cell v-model="form.priIdNo" :max="18" label="负责人身份证号" placeholder="负责人身份证号"></v-cell>
<v-cell v-model="form.outChanNo" :max="18" label="渠道编码" :readonly="true" placeholder="渠道编码"></v-cell>
</div>
@@ -145,6 +145,10 @@
},
dtlAddr: this.form.dtlAddr,
},
+ priEmail:this.form.priEmail,
+ priIdNo:this.form.priIdNo,
+ priMblNo:this.form.priMblNo,
+ priName:this.form.priName,
storeId: this.$route.query.storeId,
};
diff --git a/src/views/mine/stores/stores.vue b/src/views/mine/stores/stores.vue
index 06596a7..c658713 100644
--- a/src/views/mine/stores/stores.vue
+++ b/src/views/mine/stores/stores.vue
@@ -6,19 +6,12 @@
<template>
<div class="stores-box h-100-g">
<v-navbar title="门店管理" fixed></v-navbar>
- <van-search class="search" placeholder="请输入门店名称/负责人姓名/负责人手机号" v-model="value" shape='round' @search="onSearch"/>
+ <van-search class="search" placeholder="请输入门店名称/负责人姓名/负责人手机号" v-model="value" shape='round' @search="onSearch" />
<div class="item-box">
- <van-list
- v-model="loading"
- :finished="finished"
- immediate-check='false'
- offset="50"
- finished-text="没有更多了"
- @load="onLoad"
- >
+ <van-list v-model="loading" :finished="finished" immediate-check='false' offset="50" finished-text="没有更多了" @load="onLoad">
<div class="stores-item flex-start-g" v-for="(item, index) in list" :key="index" @click="go(item.storeId)">
<p class="icon-box flex-center-g">
- <svg class="icon" aria-hidden="true" style="width:25px;height:25px;fill:#fff" >
+ <svg class="icon" aria-hidden="true" style="width:25px;height:25px;fill:#fff">
<use xlink:href="#iconyonghu"></use>
</svg>
</p>
@@ -31,176 +24,184 @@
</van-list>
</div>
- <van-button class="btn" @click="$router.push(`/mine/stores-add?merId=${merId}`)">
+ <van-button class="btn" @click="$router.push(`/mine/stores-add?merId=${merId}`)" v-if="orgType!=1">
<div class="inner">
- <van-icon name="plus"/>
+ <van-icon name="plus" />
<span class="text">新增</span>
</div>
</van-button>
-
</div>
</template>
<script>
-import { mapState } from 'vuex';
- export default {
- name: "stores",
- data() {
- return {
- value: '',
- list:[],
- loading:false,
- finished:false,
- storeId:'',
- merId:'',
- }
- },
- computed:{
- ...mapState(['userinfo'])
- },
- created(){
- this.merId = this.$route.query.merId?this.$route.query.merId:this.userinfo.orgId;
- this.init();
- },
- methods: {
- init(){
- this.loading = true
- this.$api.storeStoreList({
- searchKey:this.value,
- storeId:this.storeId,
- merId:this.merId,
- }).then((res) => {
- if(res.body.storeList.length < 10){
- this.list = [...this.list,...res.body.storeList]
- this.storeId = ''
- this.finished = true
- this.loading = false
- }else{
- this.list = [...this.list,...res.body.storeList]
- this.storeId = this.list[this.list.length-1].storeId
- this.finished = false
- this.loading = false
- }
- })
- },
- goStoreOprs(storeId){
- this.$router.push({
- path:'/mine/storesOprs',
- query:{
- storeId:storeId
- }
- })
- },
- go(id) {
- this.$router.push({path:'/mine/stores-detail',query:{storeId:id}});
- },
-
- onLoad(){
- this.init()
- },
- onSearch(val){
- this.list = []
- this.loading = true
- this.$api.storeStoreList({
- searchKey:this.value,
- merId:this.merId,
- }).then(res=>{
- if(res.body.storeList.length < 10){
- this.list = [...this.list,...res.body.storeList]
- this.storeId = ''
- this.finished = true
- this.loading = false
- }else{
- this.list = [...this.list,...res.body.storeList]
- this.storeId = this.list[this.list.length-1].storeId
- this.finished = false
- this.loading = false
- }
- })
- }
-
-
+import { mapState, mapGetters } from "vuex";
+export default {
+ name: "stores",
+ data() {
+ return {
+ value: '',
+ list: [],
+ loading: false,
+ finished: false,
+ storeId: '',
+ merId: '',
}
+ },
+ computed: {
+ ...mapState(['userinfo']),
+ ...mapGetters(["orgType"]),
+ },
+ created() {
+ this.merId = this.$route.query.merId ? this.$route.query.merId : this.userinfo.orgId;
+ this.init();
+ },
+ methods: {
+ init() {
+ this.loading = true
+ let objForm = {}
+ if (this.orgType == 1) {
+ objForm = {
+ searchKey: this.value,
+ storeId: this.storeId,
+ }
+ } else {
+ objForm = {
+ searchKey: this.value,
+ storeId: this.storeId,
+ merId: this.merId,
+ }
+ }
+ this.$api.storeStoreList(objForm).then((res) => {
+ if (res.body.storeList.length < 10) {
+ this.list = [...this.list, ...res.body.storeList]
+ this.storeId = ''
+ this.finished = true
+ this.loading = false
+ } else {
+ this.list = [...this.list, ...res.body.storeList]
+ this.storeId = this.list[this.list.length - 1].storeId
+ this.finished = false
+ this.loading = false
+ }
+ })
+ },
+ goStoreOprs(storeId) {
+ this.$router.push({
+ path: '/mine/storesOprs',
+ query: {
+ storeId: storeId
+ }
+ })
+ },
+ go(id) {
+ this.$router.push({ path: '/mine/stores-detail', query: { storeId: id } });
+ },
+
+ onLoad() {
+ this.init()
+ },
+ onSearch(val) {
+ this.list = []
+ this.loading = true
+ this.$api.storeStoreList({
+ searchKey: this.value,
+ merId: this.merId,
+ }).then(res => {
+ if (res.body.storeList.length < 10) {
+ this.list = [...this.list, ...res.body.storeList]
+ this.storeId = ''
+ this.finished = true
+ this.loading = false
+ } else {
+ this.list = [...this.list, ...res.body.storeList]
+ this.storeId = this.list[this.list.length - 1].storeId
+ this.finished = false
+ this.loading = false
+ }
+ })
+ }
+
+
}
+}
</script>
<style scoped lang="less">
.stores-box {
+ background-color: @c-bg-f5;
+ padding-top: 44px;
- background-color: @c-bg-f5;
- padding-top: 44px;
+ .btn {
+ position: fixed;
+ width: 50px;
+ height: 50px;
+ padding: 0;
+ right: 8px;
+ bottom: 68px;
+ border-radius: 50%;
+ color: @c-text-f5;
+ z-index: @zIndex-50;
+ box-shadow: 0px 5px 9px 0px rgba(80, 47, 183, 0.2);
+ background: linear-gradient(
+ 0deg,
+ rgba(106, 79, 188, 1),
+ rgba(137, 110, 219, 1)
+ );
- .btn {
- position: fixed;
- width: 50px;
- height: 50px;
- padding: 0;
- right: 8px;
- bottom: 68px;
+ .inner {
+ display: flex;
+ flex-direction: column;
+ }
+
+ .text {
+ .lh(15px);
+ }
+ }
+
+ //搜索框
+ .search {
+ margin-top: 10px;
+ padding: 15px 8px;
+ }
+
+ .item-box {
+ background-color: @c-bg-fff;
+ padding-bottom: 25px;
+ }
+
+ .stores-item {
+ height: 67px;
+ margin: 0 8px 10px;
+ padding-left: 12px;
+ box-shadow: 0px 0px 5px 0px rgba(66, 61, 93, 0.08);
+ border-radius: 3px;
+
+ .icon-box {
+ width: 32px;
+ height: 32px;
+ margin-right: 15px;
border-radius: 50%;
- color: @c-text-f5;
- z-index: @zIndex-50;
- box-shadow: 0px 5px 9px 0px rgba(80, 47, 183, 0.2);
- background: linear-gradient(0deg, rgba(106, 79, 188, 1), rgba(137, 110, 219, 1));
-
- .inner {
- display: flex;
- flex-direction: column;
- }
-
- .text {
- .lh(15px);
- }
+ background-color: @c-bg-black;
}
- //搜索框
- .search {
- margin-top: 10px;
- padding: 15px 8px;
+ .name {
+ margin-bottom: 5px;
+ font-weight: bold;
+ width: 200px;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
}
-
- .item-box {
- background-color: @c-bg-fff;
- padding-bottom: 25px;
+ .opr-btn {
+ .lh(25px);
+ margin-right: 0px;
+ padding: 0 12px;
+ background: @c-bg-default;
+ border-radius: 13px;
+ color: @c-text-fff;
}
-
-
- .stores-item {
- height: 67px;
- margin: 0 8px 10px;
- padding-left: 12px;
- box-shadow: 0px 0px 5px 0px rgba(66, 61, 93, 0.08);
- border-radius: 3px;
-
- .icon-box {
- width: 32px;
- height: 32px;
- margin-right: 15px;
- border-radius: 50%;
- background-color: @c-bg-black;
- }
-
- .name {
- margin-bottom: 5px;
- font-weight: bold;
- width:200px;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
-
- .opr-btn {
- .lh(25px);
- margin-right: 0px;
- padding: 0 12px;
- background: @c-bg-default;
- border-radius: 13px;
- color: @c-text-fff;
- }
- }
-
-
+ }
}
</style>
--
Gitblit v1.8.0