zory il y a 4 semaines
Parent
commit
761df9fb71

+ 37 - 37
src/views/manage/setting/basic/index.vue

@@ -34,47 +34,22 @@
                             </el-form-item>
                         </el-form>
                     </el-tab-pane>
-                    <el-tab-pane label="微信设置" name="wechat" v-loading="isLoading">
+                    <el-tab-pane label="抖音设置" name="wechat" v-loading="isLoading">
                         <el-form :model="sys" :rules="rules2" ref="form" label-position="top" @keyup.enter="saveForm" v-if="activeName=='wechat'">
                             <el-row :gutter="15">
                                 <el-col :span="this.$store.state.global.ismobile?24:12">
                                     <fieldset>
-                                        <legend><el-tag>公众号配置</el-tag></legend>
-                                        <el-form-item label="Token(接口认证令牌)" prop="token">
-                                            <el-input v-model="sys.token" clearable placeholder="请输入"></el-input>
-                                            <div class="el-form-item-msg">公众号平台与系统对接认证Token,请优先填写此参数并保存,然后再在微信公众号平台操作对接。</div>
+                                        <legend><el-tag>商家应用权限</el-tag></legend>
+                                        <el-form-item label="应用名称" prop="name">
+                                            <el-input v-model="sys.name" clearable placeholder="请输入"></el-input>
+                                            <div class="el-form-item-msg">应用名称</div>
                                         </el-form-item>
-                                        <el-form-item label="AppId(公众号 APPID)" prop="appid">
+                                        <el-form-item label="AppId(应用 APPID)" prop="appid">
                                             <el-input v-model="sys.appid" clearable placeholder="请输入"></el-input>
-                                            <div class="el-form-item-msg">公众号APPID是所有接口必要参数,可以在公众号平台 [ 开发 > 基本配置 ] 页面获取。</div>
-                                        </el-form-item>
-                                        <el-form-item label="AppSecret(公众号 Secret)" prop="secret">
-                                            <el-input v-model="sys.secret" show-password clearable placeholder="请输入"></el-input>
-                                            <div class="el-form-item-msg">公众号应用密钥是所有接口必要参数,可以在公众号平台 [ 开发 > 基本配置 ] 页面授权后获取。</div>
-                                        </el-form-item>
-                                        <el-form-item label="AesKey(消息加密密钥)" prop="aeskey">
-                                            <el-input v-model="sys.aeskey" clearable placeholder="请输入"></el-input>
-                                            <div class="el-form-item-msg">若开启了消息加密时必需填写,消息加密密钥必需填写并保持与公众号平台一致。</div>
-                                        </el-form-item>
-                                    </fieldset>
-                                </el-col>
-                                <el-col :span="this.$store.state.global.ismobile?24:12">
-                                    <fieldset>
-                                        <legend><el-tag>支付配置</el-tag></legend>
-                                        <el-form-item label="MCH_ID(微信商户账号)" prop="mch_id">
-                                            <el-input v-model="sys.mch_id" clearable placeholder="请输入"></el-input>
-                                            <div class="el-form-item-msg">微信商户账号,需要在微信商户平台获取,MCH_ID 与 APPID 匹配</div>
-                                        </el-form-item>
-                                        <el-form-item label="MCH_KEY(微信商户密钥)" prop="mch_key">
-                                            <el-input v-model="sys.mch_key" show-password clearable placeholder="请输入"></el-input>
-                                            <div class="el-form-item-msg">微信商户 V2 密钥,需要在微信商户平台操作设置操作密码并获取商户接口密钥</div>
-                                        </el-form-item>
-                                        <el-form-item label="商户KEY证书" prop="cert_key">
-                                            <scUploadFile v-model="sys.cert_key" tip="请上传apiclient_key.pem文件" btnTxt="上传KEY证书" accept=".pem" :apiObj="$API.common.uploadFile" :multiple="false" :limit="1"></scUploadFile>
                                             <div class="el-form-item-msg"></div>
                                         </el-form-item>
-                                        <el-form-item label="商户CRET证书" prop="cert_cert">
-                                            <scUploadFile v-model="sys.cert_cert" tip="请上传apiclient_cert.pem文件" btnTxt="上传CERT证书" accept=".pem" :apiObj="$API.common.uploadFile" :multiple="false" :limit="1"></scUploadFile>
+                                        <el-form-item label="AppSecret(应用 Secret)" prop="secret">
+                                            <el-input v-model="sys.secret" show-password clearable placeholder="请输入"></el-input>
                                             <div class="el-form-item-msg"></div>
                                         </el-form-item>
                                     </fieldset>
@@ -95,6 +70,31 @@
                                         </el-form-item>
                                     </fieldset>
                                 </el-col>
+                                <el-col :span="this.$store.state.global.ismobile?24:12">
+                                    <fieldset>
+                                        <legend><el-tag>支付配置</el-tag></legend>
+                                        <el-form-item label="MCH_ID(商户账号)" prop="mch_id">
+                                            <el-input v-model="sys.mch_id" clearable placeholder="请输入"></el-input>
+                                            <div class="el-form-item-msg">微信商户账号,需要在微信商户平台获取,MCH_ID 与 APPID 匹配</div>
+                                        </el-form-item>
+                                        <el-form-item label="Token(支付令牌)" prop="mch_token">
+                                            <el-input v-model="sys.mch_token" show-password clearable placeholder="请输入"></el-input>
+                                            <div class="el-form-item-msg"></div>
+                                        </el-form-item>
+                                        <el-form-item label="Salt(支付盐)" prop="mch_salt">
+                                            <el-input v-model="sys.mch_salt" show-password clearable placeholder="请输入"></el-input>
+                                            <div class="el-form-item-msg"></div>
+                                        </el-form-item>
+                                        <el-form-item label="应用公钥" prop="app_public_key">
+                                            <el-input v-model="sys.app_public_key" type="textarea" rows="10" show-password clearable placeholder="请输入"></el-input>
+                                            <div class="el-form-item-msg"></div>
+                                        </el-form-item>
+                                        <el-form-item label="平台公钥" prop="public_key">
+                                            <el-input v-model="sys.public_key" type="textarea" rows="10" show-password clearable placeholder="请输入"></el-input>
+                                            <div class="el-form-item-msg"></div>
+                                        </el-form-item>
+                                    </fieldset>
+                                </el-col>
                             </el-row>
                         </el-form>
                     </el-tab-pane>
@@ -116,12 +116,12 @@ export default {
     },
     data(){
         return {
-            activeName:"service",
+            activeName:"wechat",
             isSaveing: false,
             sys: {},
             smsRegion:[],
             rules2:{
-                token: [
+                name: [
                     { required: true, message: '请输入' }
                 ],
                 appid: [
@@ -133,10 +133,10 @@ export default {
                 mch_id: [
                     { required: true, message: '请输入' }
                 ],
-                mch_key: [
+                mch_token: [
                     { required: true, message: '请输入' }
                 ],
-                mini_appid: [
+                mch_salt: [
                     { required: true, message: '请输入' }
                 ],
                 mini_secret: [

+ 1 - 0
src/views/manage/setting/menu/index.vue

@@ -10,6 +10,7 @@
                         <el-tabs v-model="activeName" class="demo-tabs" @tab-change="handleClick">
                             <el-tab-pane label="总管理" :name="1"></el-tab-pane>
                             <el-tab-pane label="门店" :name="2"></el-tab-pane>
+                            <el-tab-pane label="客服" :name="3"></el-tab-pane>
                         </el-tabs>
                     </div>
 					<el-tree ref="menu" class="menu" node-key="id" :data="menuList" :props="menuProps" draggable highlight-current :expand-on-click-node="false" check-strictly :filter-node-method="menuFilterNode" @node-click="menuClick" @node-drop="nodeDrop">

+ 0 - 124
src/views/manage/shop/card/components/form.vue

@@ -1,124 +0,0 @@
-<template>
-    <el-dialog :title="titleMap[mode]" v-model="visible" :width="600" :close-on-click-modal="false" destroy-on-close @closed="$emit('closed')">
-        <el-form ref="dialogForm" :model="formData" :rules="rules" label-width="100px" label-position="top">
-            <el-row :gutter="15">
-                <el-col :span="24">
-                    <el-form-item label="套餐名称" prop="name">
-                        <el-input v-model="formData.name" clearable placeholder="请输入"></el-input>
-                        <div class="el-form-item-msg"></div>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="时长类型" prop="unit">
-                        <el-radio-group v-model="formData.unit">
-                            <el-radio border :label="1">按天</el-radio>
-                            <el-radio border :label="2">按年</el-radio>
-                        </el-radio-group>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="套餐时长" prop="time">
-                        <el-input v-model="formData.time" clearable placeholder="请输入">
-                            <template #append>{{ formData.unit==1?'天':'年' }}</template>
-                        </el-input>
-                        <div class="el-form-item-msg"></div>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="套餐金额" prop="money">
-                        <el-input v-model="formData.money" clearable placeholder="请输入">
-                            <template #append>元</template>
-                        </el-input>
-                        <div class="el-form-item-msg">实际支付金额</div>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="套餐划线金额" prop="old_money">
-                        <el-input v-model="formData.old_money" clearable placeholder="请输入">
-                            <template #append>元</template>
-                        </el-input>
-                        <div class="el-form-item-msg"></div>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="24">
-                    <el-form-item label="排序" prop="sort">
-                        <el-input v-model="formData.sort" clearable placeholder="请输入"></el-input>
-                        <div class="el-form-item-msg"></div>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-        </el-form>
-		<template #footer>
-			<el-button @click="visible=false" >取 消</el-button>
-			<el-button type="primary" :loading="isSaveing" @click="submit()">保 存</el-button>
-		</template>
-    </el-dialog>
-</template>
-
-<script>
-export default {
-    data(){
-        return {
-            loading: false,
-            isSaveing: false,
-            mode:"add",
-            titleMap:{
-                add:"新增套餐",
-                edit:"编辑套餐"
-            },
-            visible:false,
-            formData:{
-                unit:2,
-                sort:0
-            },
-            rules:{
-                name: [
-                    {required: true, message: '请输入'}
-                ],
-                money: [
-                    {required: true, message: '请输入'}
-                ],
-                time: [
-                    {required: true, message: '请输入'}
-                ],
-                old_money: [
-                    {required: true, message: '请输入'}
-                ],
-                unit: [
-                    {required: true, message: '请选择'}
-                ],
-            }
-        }
-    },
-    methods:{
-        open(mode = 'add'){
-            this.mode = mode;
-            this.visible = true;
-            return this
-        },
-        //表单注入数据
-        setData(data){
-            this.formData = JSON.parse(JSON.stringify(data));
-        },
-        async submit(){
-            var validate = await this.$refs.dialogForm.validate().catch(()=>{});
-            if(!validate){ return false }
-            this.isSaveing = true;
-            let submitData = JSON.parse(JSON.stringify(this.formData));
-            var resp = await this.$API.combo.save.post(submitData);
-            this.isSaveing = false;
-            if (resp.code == 0) {
-                return this.$message.error(resp.msg);
-            }
-            this.$message.success(resp.msg);
-            this.visible = false;
-            this.formData = {
-                unit:2,
-                sort:0
-            };
-            this.submitState = false;
-            this.$emit("success");
-        }
-    }
-}
-</script>

+ 0 - 55
src/views/manage/shop/card/components/option.vue

@@ -1,55 +0,0 @@
-<template>
-    <fieldset>
-        <legend>
-            <el-tag type="info">按需操作</el-tag>
-        </legend>
-        <div class="op-header">
-            <div class="left-panel">
-                <el-button type="primary" icon="el-icon-plus" @click="table_add()">新增套餐</el-button>
-                <el-button icon="el-icon-document" @click="table_batch_status(1)" :disabled="dataSelect.length>0?false:true">启用</el-button>
-                <el-button icon="el-icon-lock" @click="table_batch_status(0)" :disabled="dataSelect.length>0?false:true">禁用</el-button>
-            </div>
-        </div>
-    </fieldset>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
-</template>
-
-<script>
-import formMain from './form';
-export default {
-    components: {
-        formMain
-    },
-    props: {
-        dataSelect: { type: Array, default: () => [] },
-        dataSelectFull: { type: Array, default: () => [] }
-    },
-    data(){
-        return {
-
-        }
-    },
-    methods: {
-        async table_batch_status(status){
-            if (this.dataSelect.length == 0) {
-                return this.$message.error("请选择修改数据")
-            }
-            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
-            var resp = await this.$API.combo.batch.post(submitData);
-            if (resp.code == 0) {
-                return this.$message.error(resp.msg);
-            }
-            this.$message.success(resp.msg);
-            this.$emit("success");
-        },
-        handleSuccess(){
-            this.$emit("success");
-        },
-        table_add(){
-            this.$nextTick(() => {
-                this.$refs.formMain.open("add")
-            })
-        },
-    }
-}
-</script>

+ 0 - 49
src/views/manage/shop/card/components/search.vue

@@ -1,49 +0,0 @@
-<template>
-    <fieldset>
-        <legend>
-            <el-tag type="info">条件筛选</el-tag>
-        </legend>
-        <el-form class="lv-form-inline" ref="searchForm" :model="searchKey" label-position="right" label-width="100px">
-            <div class="search-form">
-                <div class="form-left">
-                    <el-row :gutter="10">
-                        <el-col :xs="12" :sm="12" :md="12" :lg="6" :xl="4">
-                            <el-input v-model="searchKey.name" placeholder="套餐名称" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>套餐名称</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :xs="12" :sm="12" :md="12" :lg="6" :xl="4">
-                            <el-select v-model="searchKey.status" clearable placeholder="请选择状态" @change="searchForm" :style="{width: '100%'}" class="diy-select">
-                                <el-option value="1" label="禁用"></el-option>
-                                <el-option value="2" label="正常"></el-option>
-                                <template #prefix>状态</template>
-                            </el-select>
-                        </el-col>
-                        <el-col :xs="12" :sm="6" :md="6" :lg="6" :xl="4">
-                            <el-date-picker v-model="searchKey.create" :style="{width: '100%'}" placeholder="请选择创建时间" start-placeholder="开始时间" end-placeholder="结束时间" type="daterange" range-separator="至" @change="searchForm" />
-                        </el-col>
-                    </el-row>
-                </div>
-                <div class="form-line"></div>
-                <div class="form-right">
-                    <el-button type="primary" icon="el-icon-search" @click="searchForm">搜索</el-button>
-                </div>
-            </div>
-        </el-form>
-    </fieldset>
-</template>
-
-<script>
-export default {
-    data(){
-        return {
-            searchKey:{}
-        }
-    },
-    methods: {
-        searchForm(){
-            this.$emit("success",this.searchKey);
-        }
-    }
-}
-</script>

+ 0 - 118
src/views/manage/shop/card/components/table.vue

@@ -1,118 +0,0 @@
-<template>
-    <scTable ref="table" :apiObj="list.apiObj" :params="searchKey" @selectionChange="selectionChange" row-key="id">
-        <el-table-column type="selection" width="50" fixed="left"></el-table-column>
-        <el-table-column label="套餐名称" width="200" fixed="left" prop="name"></el-table-column>
-        <el-table-column label="套餐金额" prop="money" width="180">
-            <template #default="scope">
-                <span v-if="scope.row.money">¥{{ scope.row.money }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="划线金额" prop="old_money" width="180">
-            <template #default="scope">
-                <span v-if="scope.row.old_money">¥{{ scope.row.old_money }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="有效期" prop="time" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.time">{{ scope.row.time }}{{ scope.row.unit==1?'天' :'年'}}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="状态" prop="status" width="120" align="center">
-            <template #default="scope">
-                <div class="status-success" v-if="scope.row.status==1"><sc-status-indicator type="success"></sc-status-indicator> 正常</div>
-                <div class="status-danger" v-if="scope.row.status==0"><sc-status-indicator type="danger"></sc-status-indicator> 禁用</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
-        <el-table-column label="操作" width="140" align="left" fixed="right">
-            <template #default="scope">
-                <el-button-group>
-                    <el-button size="small" @click="table_view(scope.row)">编辑</el-button>
-                    <el-button type="danger" size="small" @click="table_del(scope.row)">删除</el-button>
-                </el-button-group>
-            </template>
-        </el-table-column>
-    </scTable>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
-</template>
-
-<script>
-import formMain from './form';
-export default {
-    components: {
-        formMain
-    },
-    data(){
-        return {
-            list: {
-                apiObj: this.$API.combo.list
-            },
-            dataSelect:[],
-            dataSelectFull:[],
-            searchKey:{}
-        }
-    },
-    
-    methods: {
-        table_view(data){
-            this.$nextTick(() => {
-                this.$refs.formMain.open("edit").setData(data)
-            })
-        },
-        table_del(data){
-            this.$confirm(`确定要删除该套餐吗?`, '提示', {
-                type: 'warning'
-            }).then(async ()=>{
-                var resp = await this.$API.combo.del.post({"id":data.id});
-                if (resp.code == 0) {
-                    return this.$message.error(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(()=>{})
-        },
-        refresh(){
-            this.$refs.table.refresh()
-        },
-        upData(data){
-            this.$refs.table.upData(data)
-        },
-        handleSuccess(){
-            this.$refs.table.refresh()
-        },
-        sortChange(event){
-            if (event.order) {
-                var data = {
-                    "field":event.prop,
-                    "order":event.order
-                }
-                this.$refs.table.upData(data)
-            } else {
-                this.$refs.table.reload(this.searchKey)
-            }
-            return ;
-        },
-        selectionChange(event){
-            this.dataSelect = [];
-            var arr = [];
-            var arrCompany = [];
-            event.forEach(function(val,index){
-                arr[index] = val.id;
-                arrCompany[index] = val;
-            });
-            this.dataSelectFull = arrCompany;
-            this.dataSelect = arr;
-            this.$emit("success",this.dataSelect);
-            this.$emit("successFull",this.dataSelectFull);
-        },
-        table_passwd(row){
-            this.$nextTick(() => {
-                this.$refs.userPasswd.open("edit").setData(row)
-            })
-        }
-    }
-}
-</script>

+ 0 - 47
src/views/manage/shop/card/index.vue

@@ -1,47 +0,0 @@
-<template>
-    <el-container class="flex-column">
-        <div class="table-search">
-            <search @success="handleSuccess"></search>
-            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" type="3"></optionBtn>
-        </div>
-        <el-main class="nopadding">
-            <div class="table-container">
-                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
-            </div>
-        </el-main>
-    </el-container>  
-</template>
-
-<script>
-import search from './components/search';
-import optionBtn from './components/option';
-import tablePage from './components/table';
-export default {
-    components: {
-        search,tablePage,optionBtn
-    },
-    data(){
-        return {
-            searchKey:{},
-            dataSelect:[],
-            dataSelectFull:[],
-        }
-    },
-    methods: {
-        tableHandle(data){
-            this.dataSelect = data;
-        },
-        tableHandleFull(data){
-            this.dataSelectFull = data;
-        },
-        handleSuccess(data){
-            this.$refs.tablePage.upData(data)
-        },
-        handleClick(name){
-            this.activeName = name;
-            this.searchKey.type = name;
-            this.$refs.tablePage.upData(this.searchKey)
-        }
-    }
-}
-</script>

+ 0 - 1
src/views/manage/shop/index/components/option.vue

@@ -7,7 +7,6 @@
             <div class="left-panel">
                 <el-button type="primary" icon="el-icon-plus" @click="table_add()">新增店铺</el-button>
                 <el-button icon="el-icon-document" @click="table_batch_status(0)" :disabled="dataSelect.length>0?false:true">启用</el-button>
-                <el-button icon="el-icon-lock" @click="table_batch_status(2)" :disabled="dataSelect.length>0?false:true">关店</el-button>
             </div>
         </div>
     </fieldset>