bibi 3 years ago
parent ae4b8fa2b5
commit d03b032036

@ -1,3 +1,3 @@
NODE_ENV = 'production'
VUE_APP_URL = 'https://saas.kaidalai.cn/api/admin/'
VUE_APP_STATIC = 'https://saas.kaidalai.cn/api/admin/'
VUE_APP_URL = 'https://saas.kaidalai.cn/api/admin'
VUE_APP_STATIC = 'https://saas.kaidalai.cn/api/admin'

@ -0,0 +1,24 @@
module.exports = {
"env": {
"browser": true,
"es6": true
},
"extends": [
"plugin:vue/essential",
],
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
},
"plugins": [
"vue"
],
"rules": {
indent: ['error', 'tab'],
'no-console': 'off',
}
};

@ -1,5 +1,5 @@
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
]
presets: [
'@vue/cli-plugin-babel/preset'
]
}

@ -17,12 +17,12 @@
<script>
import zhCN from "ant-design-vue/lib/locale-provider/zh_CN";
export default {
name: 'App',
data() {
return {
locale: zhCN
};
},
name: 'App',
data() {
return {
locale: zhCN
};
},
}
</script>

@ -2,9 +2,9 @@ import httpService from "@/request"
// 获取预报列表
export function functionName(params) {
return httpService({
url: `url`,
method: 'post',
data: params,
})
return httpService({
url: `url`,
method: 'post',
data: params,
})
}

@ -1,10 +0,0 @@
import httpService from "@/request"
// 登录
export function loginTel(params) {
return httpService({
url: `/manage/loginTelCode`,
method: 'post',
data: params,
})
}

@ -0,0 +1,34 @@
import httpService from "@/request"
// 注册
export function register(params) {
return httpService({
url: `/register`,
method: 'post',
data: params,
})
}
// 登录
export function loginPWD(params) {
return httpService({
url: `/loginPWD`,
method: 'post',
data: params,
})
}
// 登录
export function loginTelCode(params) {
return httpService({
url: `/loginTelCode`,
method: 'post',
data: params,
})
}
// 验证码
export function sendTelCode(params) {
return httpService({
url: `/sendTelCode`,
method: 'post',
data: params,
})
}

@ -19,18 +19,18 @@
</template>
<script>
export default {
data() {
return {
visible: false,
};
},
methods: {
showDrawer() {
this.visible = true;
},
onClose() {
this.visible = false;
},
},
data() {
return {
visible: false,
};
},
methods: {
showDrawer() {
this.visible = true;
},
onClose() {
this.visible = false;
},
},
};
</script>

@ -56,16 +56,16 @@
<script>
export default {
data() {
return {
//
pagination: {
showTotal: (total) => `${total}`,
showSizeChanger: true,
showQuickJumper: true,
},
activeAction:undefined,
/**
data() {
return {
//
pagination: {
showTotal: (total) => `${total}`,
showSizeChanger: true,
showQuickJumper: true,
},
activeAction:undefined,
/**
*
*
* customRender: function (gender) {
@ -76,43 +76,43 @@ export default {
}
},
*/
loading: false,
// index
selectedRowKeys: [],
};
},
computed: {
// selection
hasSelected() {
return this.selectedRowKeys.length > 0;
},
},
//
props: {
columns: Array,
tableData: Array,
ActionsList: Array,
// activeAction:Number
},
methods: {
// selection
selectionChoosed(selectedRowKeys, data) {
this.selectedRowKeys = selectedRowKeys;
this.$emit("selectionChoosed", data);
},
//
handleTableChange(val) {
this.$emit("handleTableChange", val);
},
//
Actions(val) {
this.$emit("Actions", val);
this.activeAction = undefined
},
formatter(val){
this.$emit("formatter", val);
}
},
loading: false,
// index
selectedRowKeys: [],
};
},
computed: {
// selection
hasSelected() {
return this.selectedRowKeys.length > 0;
},
},
//
props: {
columns: Array,
tableData: Array,
ActionsList: Array,
// activeAction:Number
},
methods: {
// selection
selectionChoosed(selectedRowKeys, data) {
this.selectedRowKeys = selectedRowKeys;
this.$emit("selectionChoosed", data);
},
//
handleTableChange(val) {
this.$emit("handleTableChange", val);
},
//
Actions(val) {
this.$emit("Actions", val);
this.activeAction = undefined
},
formatter(val){
this.$emit("formatter", val);
}
},
};
</script>

@ -11,9 +11,12 @@ import App from './App.vue'
import './styles/index.less';
import mixins from "@/mixins"
import Antd from 'ant-design-vue';
import util from '@/utils/util.js'
import 'ant-design-vue/dist/antd.css';
Vue.use(Antd);
Vue.use(mixins);
Vue.use(util);
import store from "@/store";
import router from "@/permission";
Vue.config.productionTip = false
@ -23,13 +26,13 @@ import commonTable from './components/table'
Vue.component('commonTable', commonTable)
router.beforeEach((to, from, next) => {
// 让页面回到顶部
document.documentElement.scrollTop = 0
next()
// 让页面回到顶部
document.documentElement.scrollTop = 0
next()
})
new Vue({
render: h => h(App),
router,
store
render: h => h(App),
router,
store
}).$mount('#app')

@ -12,10 +12,10 @@ export default {
install(Vue) {
Vue.mixin({
computed: {
...mapGetters(['getToken','getCommunityCode','getSelectedKeys', 'getOpenKeys'])
...mapGetters(['getToken','getSelectedKeys', 'getOpenKeys'])
},
methods: {
...mapActions(['setToken','setCommunityCode','setSelectedKeys', 'setOpenKeys'])
...mapActions(['setToken','setSelectedKeys', 'setOpenKeys'])
}
})
}

@ -35,7 +35,7 @@ httpService.interceptors.request.use(config => {
const rqData = filterRequestData(config.data);
// post 'Content-Type' === 'application/x-www-form-urlencoded'
config.headers['Content-Type'] = "application/json";
config.headers['manage-login-token'] = store.getters.getToken;
config.headers['admin-login-token'] = store.getters.getToken;
// config.headers['device-type'] = "web";
if(config.method === 'post') {
config.data = rqData;

@ -7,41 +7,41 @@
* @FilePath: /LittleBeeSaas/src/router/basic.js
*/
export default [
{
path: '/Basic/home',
name: "home",
title: "首页",
hide: false,
icon: 'container',
component: resolve => require(['@/views/Basic/home'], resolve),
meta: {title: '首页'},
},
{
path: '/Basic/home/settled',
name: "settled",
title: "首页-入驻企业申请",
icon: 'container',
hide: true,
component: resolve => require(['@/views/Basic/home/settled.vue'], resolve),
meta: {title: '入驻企业申请'},
},
{
path: '/Basic/home/newOrder',
name: "newOrder",
title: "首页-购买功能",
icon: 'container',
hide: true,
component: resolve => require(['@/views/Basic/home/newOrder.vue'], resolve),
meta: {title: '购买功能'},
},
{
path: '/Basic/adminSet',
name: "adminSet",
title: "管理员设置",
hide: false,
icon: 'team',
component: resolve => require(['@/views/Basic/adminSet'], resolve),
meta: {title: '管理员设置'},
},
{
path: '/Basic/home',
name: "home",
title: "首页",
hide: false,
icon: 'container',
component: resolve => require(['@/views/Basic/home'], resolve),
meta: {title: '首页'},
},
{
path: '/Basic/home/settled',
name: "settled",
title: "首页-入驻企业申请",
icon: 'container',
hide: true,
component: resolve => require(['@/views/Basic/home/settled.vue'], resolve),
meta: {title: '入驻企业申请'},
},
{
path: '/Basic/home/newOrder',
name: "newOrder",
title: "首页-购买功能",
icon: 'container',
hide: true,
component: resolve => require(['@/views/Basic/home/newOrder.vue'], resolve),
meta: {title: '购买功能'},
},
{
path: '/Basic/adminSet',
name: "adminSet",
title: "管理员设置",
hide: false,
icon: 'team',
component: resolve => require(['@/views/Basic/adminSet'], resolve),
meta: {title: '管理员设置'},
},
]

@ -11,7 +11,7 @@ import Router from "vue-router"
const originalPush = Router.prototype.push
Router.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err)
return originalPush.call(this, location).catch(err => err)
}
Vue.use(Router);
@ -19,40 +19,40 @@ import Layout from "@/views/Layout"
import basic from "./basic" // 基础功能
import manage from "./manage" // 管理平台
const router = [
{
path: "/",
name: "Layout",
title: "外框",
component: Layout,
redirect: '/Basic/home',
meta: {title: '首页'},
children: [
...basic,
...manage
]
},
{
path: "/login",
name: "Login",
title: "登录",
component: resolve => require(['@/views/Login'], resolve)
}
{
path: "/",
name: "Layout",
title: "外框",
component: Layout,
redirect: '/Basic/home',
meta: {title: '首页'},
children: [
...basic,
...manage
]
},
{
path: "/login",
name: "Login",
title: "登录",
component: resolve => require(['@/views/Login'], resolve)
}
]
export default new Router({
mode: 'history',
routes: router,
scrollBehavior(to, from, savedPosition) {
// console.log(savedPosition);
if (savedPosition) {
return new Promise((resolve) => {
setTimeout(() => {
console.log('savedPosition', savedPosition)
resolve(savedPosition)
}, 500);
})
} else {
return { x: 0, y: 0 }
}
}
mode: 'history',
routes: router,
scrollBehavior(to, from, savedPosition) {
// console.log(savedPosition);
if (savedPosition) {
return new Promise((resolve) => {
setTimeout(() => {
console.log('savedPosition', savedPosition)
resolve(savedPosition)
}, 500);
})
} else {
return { x: 0, y: 0 }
}
}
})

@ -1,80 +1,80 @@
export default [
{
path: '/Manage/SettleRequestManage',
name: "SettleRequestManage",
title: "入驻申请管理",
hide: false,
icon: 'contacts',
component: resolve => require(['@/views/Manage/SettleRequestManage'], resolve),
meta: {title: '入驻申请管理'},
},
{
path: '/Manage/SettleRequestManage/settle_detail',
name: "settle_detail",
title: "查看详情",
hide: true,
icon: 'container',
component: resolve => require(['@/views/Manage/SettleRequestManage/_detail'], resolve),
meta: {title: '查看详情'},
},
{
path: '/Manage/CustomerList',
name: "CustomerList",
title: "客户列表",
hide: false,
icon: 'user',
component: resolve => require(['@/views/Manage/CustomerList'], resolve),
meta: {title: '客户列表'},
},
{
path: '/Manage/SettleRequestManage/customer_detail',
name: "customer_detail",
title: "查看详情",
hide: true,
icon: 'container',
component: resolve => require(['@/views/Manage/CustomerList/_detail'], resolve),
meta: {title: '查看详情'},
},
{
path: '/Manage/VillageManage',
name: "VillageManage",
title: "小区管理",
hide: false,
icon: 'home',
component: resolve => require(['@/views/Manage/VillageManage'], resolve),
meta: {title: '小区管理'},
},
{
path: '/Manage/OrderManage',
name: "OrderManage",
title: "订单管理",
hide: false,
icon: 'exception',
component: resolve => require(['@/views/Manage/OrderManage'], resolve),
meta: {title: '订单管理'},
},
{
path: '/Manage/ChargingManage',
name: "ChargingManage",
title: "收费管理",
icon: 'pay-circle',
redirect: '/ChargingManage/ChargingStandard',
meta: {title: '收费管理'},
children: [
{
path: '/ChargingManage/ChargingStandard',
name: "ChargingStandard",
title: "收费标准",
component: resolve => require(['@/views/Manage/ChargingManage/ChargingStandard'], resolve),
meta: { title: '收费标准' },
},
{
path: '/ChargingManage/FinancialBill',
name: "FinancialBill",
title: "财务账单",
component: resolve => require(['@/views/Manage/ChargingManage/FinancialBill'], resolve),
meta: { title: '财务账单' },
}
]
},
{
path: '/Manage/SettleRequestManage',
name: "SettleRequestManage",
title: "入驻申请管理",
hide: false,
icon: 'contacts',
component: resolve => require(['@/views/Manage/SettleRequestManage'], resolve),
meta: {title: '入驻申请管理'},
},
{
path: '/Manage/SettleRequestManage/settle_detail',
name: "settle_detail",
title: "查看详情",
hide: true,
icon: 'container',
component: resolve => require(['@/views/Manage/SettleRequestManage/_detail'], resolve),
meta: {title: '查看详情'},
},
{
path: '/Manage/CustomerList',
name: "CustomerList",
title: "客户列表",
hide: false,
icon: 'user',
component: resolve => require(['@/views/Manage/CustomerList'], resolve),
meta: {title: '客户列表'},
},
{
path: '/Manage/SettleRequestManage/customer_detail',
name: "customer_detail",
title: "查看详情",
hide: true,
icon: 'container',
component: resolve => require(['@/views/Manage/CustomerList/_detail'], resolve),
meta: {title: '查看详情'},
},
{
path: '/Manage/VillageManage',
name: "VillageManage",
title: "小区管理",
hide: false,
icon: 'home',
component: resolve => require(['@/views/Manage/VillageManage'], resolve),
meta: {title: '小区管理'},
},
{
path: '/Manage/OrderManage',
name: "OrderManage",
title: "订单管理",
hide: false,
icon: 'exception',
component: resolve => require(['@/views/Manage/OrderManage'], resolve),
meta: {title: '订单管理'},
},
{
path: '/Manage/ChargingManage',
name: "ChargingManage",
title: "收费管理",
icon: 'pay-circle',
redirect: '/ChargingManage/ChargingStandard',
meta: {title: '收费管理'},
children: [
{
path: '/ChargingManage/ChargingStandard',
name: "ChargingStandard",
title: "收费标准",
component: resolve => require(['@/views/Manage/ChargingManage/ChargingStandard'], resolve),
meta: { title: '收费标准' },
},
{
path: '/ChargingManage/FinancialBill',
name: "FinancialBill",
title: "财务账单",
component: resolve => require(['@/views/Manage/ChargingManage/FinancialBill'], resolve),
meta: { title: '财务账单' },
}
]
},
]

@ -10,9 +10,6 @@ const actions = {
setToken: ({commit}, log) => {
commit('setToken', log)
},
setCommunityCode: ({commit}, log) => {
commit('setCommunityCode', log)
},
setSelectedKeys: ({commit}, log) => {
commit('setSelectedKeys', log)
},

@ -16,9 +16,6 @@ const getters = {
getToken(state) {
return state.token
},
getCommunityCode(state) {
return state.communityCode
},
}
export default getters

@ -14,10 +14,10 @@ import actions from "./actions";
import mutations from "./mutations";
import getters from "./getters";
import state from "./state";
const store = new Vuex.Store({
state,
actions,
mutations,
getters
const store = new Vuex.Store({
state,
actions,
mutations,
getters
})
export default store

@ -21,10 +21,6 @@ const mutations = {
state.token = log;
sessionStorage.setItem('token', log);
},
setCommunityCode: (state, log) => {
state.communityCode = log;
sessionStorage.setItem('communityCode', log);
},
}
export default mutations

@ -10,6 +10,5 @@ const state = {
selectedKeys: JSON.parse(sessionStorage.getItem('selectedKeys')) || ['/'],
openKeys: JSON.parse(sessionStorage.getItem('openKeys')) || [],
token: sessionStorage.getItem('token') || "",
communityCode: sessionStorage.getItem('communityCode') || "",
}
export default state

@ -20,7 +20,13 @@
margin-left : 10px;
margin-bottom: 10px;
}
.back-btn{
font-size: 16px;
line-height: 22px;
color: #000000D9;
font-weight: 500;
cursor: pointer;
}
// 表格
#commonTable {
margin: 24px;

@ -0,0 +1,40 @@
import axios from 'axios'
import qs from 'qs'
export default {
install: function (Vue) {
//axios
Vue.prototype.$axios = axios
Vue.prototype.qs = qs
// 上传
Vue.prototype.$upload = process.env.VUE_APP_URL + 'admin/user/upload/uploadImg'
// 静态地址
Vue.prototype.$ImgUrl = (src) => {
return process.env.VUE_APP_STATIC + '/' + src
}
// 时间格式化
Vue.prototype.formatDate = (time, fmt) => {
if (time > 0) {
let date = new Date(time * 1000)
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
}
let o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()
}
for (let k in o) {
if (new RegExp(`(${k})`).test(fmt)) {
let str = o[k] + ''
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : ('00' + str).substr(str.length))
}
}
return fmt
} else {
return ''
}
}
}
}

@ -281,7 +281,7 @@ export default {
cascVal:[],
telephoneNum:"",
uploadHeaders: {
"manage-login-token": store.getters.getToken,
"admin-login-token": store.getters.getToken,
},
sexOption: [
{

@ -124,79 +124,79 @@
<script>
export default {
name: "Console",
data(){
return{
orderList:[
{
code:'N20212121212',
status:'付款成功',
time:'2023/3/3',
amount:'25000',
functionList:['基础功能','缴费管理','智慧商城','运营管理','设置']
},{
code:'N20212121212',
status:'付款成功',
time:'2023/3/3',
functionList:['基础功能','缴费管理','智慧商城','运营管理','设置']
},{
code:'N20212121212',
status:'付款成功',
time:'2023/3/3',
functionList:['基础功能','缴费管理','智慧商城','运营管理','设置']
},
],
estateList:[
{
name:'万科·滨江花园',
address:'江苏省盐城市建湖县沿河镇 11 单元 250 室',
status:'生效中'
},{
name:'万科·滨江花园',
address:'江苏省盐城市建湖县沿河镇 11 单元 250 室',
status:'生效中'
},{
name:'万科·滨江花园',
address:'江苏省盐城市建湖县沿河镇 11 单元 250 室',
status:'生效中'
},{
name:'万科·滨江花园',
address:'江苏省盐城市建湖县沿河镇 11 单元 250 室',
status:'生效中'
},{
name:'万科·滨江花园',
address:'江苏省盐城市建湖县沿河镇 11 单元 250 室',
status:'生效中'
},
{
name:'万科·滨江花园',
address:'江苏省盐城市建湖县沿河镇 11 单元 250 室 11 单元 250 室 11 单元 250 室 11 单元 250 室 11 单元苏省盐城市建湖县沿河镇 11 单元 250 室 11 单元 250 室 11 单元 250 室苏省盐城市建湖县沿河镇 11 单元 250 室 11 单元 250 室 11 单元 250 室 11 单元 250 室 11 单元 11 单元 250 室 11 单元 250 室',
status:'生效中'
},{
name:'万科·滨江花园',
address:'江苏省盐城市建湖县沿河镇 11 建湖县沿河镇 11 单元 250建湖县沿河镇 11 建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250单元 250建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250单元 250 室',
status:'生效中'
}
],
visible: false,
confirmLoading: false,
}
},
methods:{
settled(){
this.$router.push({name:'settled'})
},
addVillage(){
this.visible=true
},
handleOk(){},
handleCancel(){
this.visible = false
},
newOrder(){
this.$router.push({name:'newOrder'})
}
}
name: "Console",
data(){
return{
orderList:[
{
code:'N20212121212',
status:'付款成功',
time:'2023/3/3',
amount:'25000',
functionList:['基础功能','缴费管理','智慧商城','运营管理','设置']
},{
code:'N20212121212',
status:'付款成功',
time:'2023/3/3',
functionList:['基础功能','缴费管理','智慧商城','运营管理','设置']
},{
code:'N20212121212',
status:'付款成功',
time:'2023/3/3',
functionList:['基础功能','缴费管理','智慧商城','运营管理','设置']
},
],
estateList:[
{
name:'万科·滨江花园',
address:'江苏省盐城市建湖县沿河镇 11 单元 250 室',
status:'生效中'
},{
name:'万科·滨江花园',
address:'江苏省盐城市建湖县沿河镇 11 单元 250 室',
status:'生效中'
},{
name:'万科·滨江花园',
address:'江苏省盐城市建湖县沿河镇 11 单元 250 室',
status:'生效中'
},{
name:'万科·滨江花园',
address:'江苏省盐城市建湖县沿河镇 11 单元 250 室',
status:'生效中'
},{
name:'万科·滨江花园',
address:'江苏省盐城市建湖县沿河镇 11 单元 250 室',
status:'生效中'
},
{
name:'万科·滨江花园',
address:'江苏省盐城市建湖县沿河镇 11 单元 250 室 11 单元 250 室 11 单元 250 室 11 单元 250 室 11 单元苏省盐城市建湖县沿河镇 11 单元 250 室 11 单元 250 室 11 单元 250 室苏省盐城市建湖县沿河镇 11 单元 250 室 11 单元 250 室 11 单元 250 室 11 单元 250 室 11 单元 11 单元 250 室 11 单元 250 室',
status:'生效中'
},{
name:'万科·滨江花园',
address:'江苏省盐城市建湖县沿河镇 11 建湖县沿河镇 11 单元 250建湖县沿河镇 11 建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250单元 250建湖县沿河镇 11 单元 250建湖县沿河镇 11 单元 250单元 250 室',
status:'生效中'
}
],
visible: false,
confirmLoading: false,
}
},
methods:{
settled(){
this.$router.push({name:'settled'})
},
addVillage(){
this.visible=true
},
handleOk(){},
handleCancel(){
this.visible = false
},
newOrder(){
this.$router.push({name:'newOrder'})
}
}
};
</script>

@ -92,65 +92,65 @@
<script>
export default {
data() {
return {
//
labelCol: { span: 4 },
wrapperCol: { span: 10 },
other: "",
form: {
tel: "",
name: "",
address:""
},
rules: {
tel: [
{
required: true,
message: "请输入手机号",
trigger: "blur",
},
{
min: 11,
max: 11,
message: "姓名长度必须为 11 位",
trigger: "blur",
},
],
name: [
{
required: true,
message: "请输入姓名",
trigger: "blur",
},
{
min: 3,
max: 5,
message: "姓名长度必须为 3 至 5位",
trigger: "blur",
},
],
},
};
},
methods: {
//
getCode(){},
onSubmit() {
this.$refs.ruleForm.validate((valid) => {
if (valid) {
alert("submit!");
} else {
console.log("error submit!!");
return false;
}
});
},
//
resetForm() {
this.$refs.ruleForm.resetFields();
},
},
data() {
return {
//
labelCol: { span: 4 },
wrapperCol: { span: 10 },
other: "",
form: {
tel: "",
name: "",
address:""
},
rules: {
tel: [
{
required: true,
message: "请输入手机号",
trigger: "blur",
},
{
min: 11,
max: 11,
message: "姓名长度必须为 11 位",
trigger: "blur",
},
],
name: [
{
required: true,
message: "请输入姓名",
trigger: "blur",
},
{
min: 3,
max: 5,
message: "姓名长度必须为 3 至 5位",
trigger: "blur",
},
],
},
};
},
methods: {
//
getCode(){},
onSubmit() {
this.$refs.ruleForm.validate((valid) => {
if (valid) {
alert("submit!");
} else {
console.log("error submit!!");
return false;
}
});
},
//
resetForm() {
this.$refs.ruleForm.resetFields();
},
},
};
</script>

@ -144,65 +144,65 @@
<script>
export default {
data() {
return {
//
labelCol: { span: 4 },
wrapperCol: { span: 10 },
other: "",
form: {
tel: "",
name: "",
address:""
},
rules: {
tel: [
{
required: true,
message: "请输入手机号",
trigger: "blur",
},
{
min: 11,
max: 11,
message: "姓名长度必须为 11 位",
trigger: "blur",
},
],
name: [
{
required: true,
message: "请输入姓名",
trigger: "blur",
},
{
min: 3,
max: 5,
message: "姓名长度必须为 3 至 5位",
trigger: "blur",
},
],
},
};
},
methods: {
//
getCode(){},
onSubmit() {
this.$refs.ruleForm.validate((valid) => {
if (valid) {
alert("submit!");
} else {
console.log("error submit!!");
return false;
}
});
},
//
resetForm() {
this.$refs.ruleForm.resetFields();
},
},
data() {
return {
//
labelCol: { span: 4 },
wrapperCol: { span: 10 },
other: "",
form: {
tel: "",
name: "",
address:""
},
rules: {
tel: [
{
required: true,
message: "请输入手机号",
trigger: "blur",
},
{
min: 11,
max: 11,
message: "姓名长度必须为 11 位",
trigger: "blur",
},
],
name: [
{
required: true,
message: "请输入姓名",
trigger: "blur",
},
{
min: 3,
max: 5,
message: "姓名长度必须为 3 至 5位",
trigger: "blur",
},
],
},
};
},
methods: {
//
getCode(){},
onSubmit() {
this.$refs.ruleForm.validate((valid) => {
if (valid) {
alert("submit!");
} else {
console.log("error submit!!");
return false;
}
});
},
//
resetForm() {
this.$refs.ruleForm.resetFields();
},
},
};
</script>

@ -37,15 +37,15 @@
<script>
import yMenu from "./yMenu";
export default {
components: {
yMenu,
},
mounted(){
components: {
yMenu,
},
mounted(){
this.$router.push({ name: sessionStorage.getItem('routerName') });
// this.tagActive = Number(sessionStorage.getItem('index'))
},
watch: {
$route: {
watch: {
$route: {
handler(val) {
this.tags = val.matched;
sessionStorage.setItem('routerName',val.name)
@ -59,44 +59,44 @@ export default {
},
immediate: true,
}
},
data() {
return {
collapsed: false,
tagActive: 0,
menuTags: [
{
label: "基础功能",
value: "a",
},
{
label: "缴费管理",
value: "b",
},
{
label: "智慧商城",
value: "c",
},
{
label: "运营管理",
value: "d",
},
{
label: "设置",
value: "e",
},
],
};
},
methods: {
handlerBread(row) {
let path = row.path || "/";
this.$router.push(path);
},
handlerTags(n) {
this.tagActive = n;
},
},
},
data() {
return {
collapsed: false,
tagActive: 0,
menuTags: [
{
label: "基础功能",
value: "a",
},
{
label: "缴费管理",
value: "b",
},
{
label: "智慧商城",
value: "c",
},
{
label: "运营管理",
value: "d",
},
{
label: "设置",
value: "e",
},
],
};
},
methods: {
handlerBread(row) {
let path = row.path || "/";
this.$router.push(path);
},
handlerTags(n) {
this.tagActive = n;
},
},
};
</script>
<style lang="less" scoped>

@ -8,40 +8,40 @@
*/
export default [
{
key: '1',
title: '信息管理',
path: '/info',
},
{
key: '2',
title: '用户管理',
path: '/user',
children: [
{
key: '2.1',
title: '后台用户',
path: '/adminUser',
children: [
{
key: '2.1.1',
title: '新增用户',
path: '/addAdminUser',
children: [
{
key: '2.1.1。1',
title: '用户xx',
path: '/addAdminUserXX',
}
]
}
]
},
{
key: '2.2',
title: '前台用户',
path: '/frontUser',
}
]
},
{
key: '1',
title: '信息管理',
path: '/info',
},
{
key: '2',
title: '用户管理',
path: '/user',
children: [
{
key: '2.1',
title: '后台用户',
path: '/adminUser',
children: [
{
key: '2.1.1',
title: '新增用户',
path: '/addAdminUser',
children: [
{
key: '2.1.1。1',
title: '用户xx',
path: '/addAdminUserXX',
}
]
}
]
},
{
key: '2.2',
title: '前台用户',
path: '/frontUser',
}
]
},
]

@ -22,7 +22,7 @@
import ost from "../ost";
import { Menu } from 'ant-design-vue';
const SubMenu = {
template: `
template: `
<a-sub-menu :key="menuInfo.key" v-bind="$props" v-on="$listeners">
<span slot="title">
<a-icon v-if="menuInfo.icon" :type="menuInfo.icon" /><span>{{ menuInfo.title }}</span>
@ -36,116 +36,116 @@ const SubMenu = {
</template>
</a-sub-menu>
`,
name: 'SubMenu',
// must add isSubMenu: true
isSubMenu: true,
props: {
// a-sub-menu使
...Menu.SubMenu.props,
// Cannot overlap with properties within Menu.SubMenu.props
menuInfo: {
type: Object,
default: () => ({}),
},
},
name: 'SubMenu',
// must add isSubMenu: true
isSubMenu: true,
props: {
// a-sub-menu使
...Menu.SubMenu.props,
// Cannot overlap with properties within Menu.SubMenu.props
menuInfo: {
type: Object,
default: () => ({}),
},
},
};
export default {
name: "yMenu",
props: {
csd: {
type: Boolean,
default: false,
indexPath: 0
}
},
watch: {
csd: {
handler(val) {
this.collapsed = val
},
immediate: true
},
$route: {
handler(val) {
let secPath = [val.path];
this.selectedKeys = secPath;
this.setSelectedKeys(secPath);
},
immediate: true,
},
name: "yMenu",
props: {
csd: {
type: Boolean,
default: false,
indexPath: 0
}
},
watch: {
csd: {
handler(val) {
this.collapsed = val
},
immediate: true
},
$route: {
handler(val) {
let secPath = [val.path];
this.selectedKeys = secPath;
this.setSelectedKeys(secPath);
},
immediate: true,
},
},
components: {
'sub-menu': SubMenu,
},
data() {
return {
list: ost,
collapsed: false,
openKeys: [],
selectedKeys: [],
defaultSelectedKeys: []
};
},
created() {
this.openKeys = this.getOpenKeys;
this.defaultSelectedKeys = this.getSelectedKeys;
this.initMenu();
},
methods: {
handlerSelect({selectedKeys}) {
this.selectedKeys = selectedKeys;
this.setSelectedKeys(selectedKeys);
},
components: {
'sub-menu': SubMenu,
},
data() {
return {
list: ost,
collapsed: false,
openKeys: [],
selectedKeys: [],
defaultSelectedKeys: []
};
},
created() {
this.openKeys = this.getOpenKeys;
this.defaultSelectedKeys = this.getSelectedKeys;
this.initMenu();
},
methods: {
handlerSelect({selectedKeys}) {
this.selectedKeys = selectedKeys;
this.setSelectedKeys(selectedKeys);
},
handlerOpen(val) {
this.setOpenKeys(val);
},
menuClick({key}) {
console.log(key)
this.$router.push(key)
},
initMenu() {
let routes = this.$router.options.routes || [];
let farr = routes.filter(ele => {
return ele.name === 'Layout'
});
let arr = farr[0].children || [];
let menus = [];
this.routerToMenu(arr, menus);
this.list = menus;
},
//
routerToMenu(arr = [], menus) {
for(let i = 0; i < arr.length; i++) {
this.indexPath++
if(!arr[i].children && !arr[i].hide) {
let obj = {
key: this.indexPath,
title: arr[i].title,
path: arr[i].path,
hide: arr[i].hide,
icon: arr[i].icon || ''
}
menus.push(obj)
}
if(arr[i].children) {
let obj = {
key: this.indexPath,
title: arr[i].title,
path: arr[i].path,
hide: arr[i].hide || false,
icon: arr[i].icon || '',
children: []
}
menus.push(obj);
this.routerToMenu(arr[i].children, obj.children)
}
}
},
handlerOpen(val) {
this.setOpenKeys(val);
},
menuClick({key}) {
console.log(key)
this.$router.push(key)
},
initMenu() {
let routes = this.$router.options.routes || [];
let farr = routes.filter(ele => {
return ele.name === 'Layout'
});
let arr = farr[0].children || [];
let menus = [];
this.routerToMenu(arr, menus);
this.list = menus;
},
//
routerToMenu(arr = [], menus) {
for(let i = 0; i < arr.length; i++) {
this.indexPath++
if(!arr[i].children && !arr[i].hide) {
let obj = {
key: this.indexPath,
title: arr[i].title,
path: arr[i].path,
hide: arr[i].hide,
icon: arr[i].icon || ''
}
menus.push(obj)
}
if(arr[i].children) {
let obj = {
key: this.indexPath,
title: arr[i].title,
path: arr[i].path,
hide: arr[i].hide || false,
icon: arr[i].icon || '',
children: []
}
menus.push(obj);
this.routerToMenu(arr[i].children, obj.children)
}
}
}
}
}
}
};
</script>

@ -13,8 +13,8 @@
<!-- 登录 -->
<a-col class="box-b" v-if="status === 1">
<a-tabs v-model="activeName" @change="tabsSwitch">
<!-- <a-tab-pane key="1" tab="密码登录">
</a-tab-pane> -->
<a-tab-pane key="1" tab="密码登录">
</a-tab-pane>
<a-tab-pane key="2" tab="验证码登录"> </a-tab-pane>
</a-tabs>
<div class="login-input" v-if="activeName === '1'">
@ -187,13 +187,13 @@
</template>
<script>
// import { loginTel, sendTelCode } from "../../api/public/login";
import { register, sendTelCode, loginPWD, loginTelCode } from "@/api/public/login";
export default {
name: "Login",
data() {
return {
status: 1,
activeName: "2",
activeName: "1",
form: {
tel: "",
code: "",
@ -230,7 +230,6 @@ export default {
},
created() {
this.keyupEnter();
this.setCommunityCode(123456);
},
methods: {
// enter
@ -242,27 +241,43 @@ export default {
}
};
},
// login() {
// loginTel(this.form).then(res=>{
// if (res.code === 200) {
// this.$message.success(res.msg);
// // token
// this.setToken(res.data);
// this.$router.push("/");
// } else {
// this.$message.error(res.msg);
// }
// })
// },
login() {
loginTelCode(this.form).then(res=>{
if (res.code === 200) {
this.$message.success(res.msg);
// token
this.setToken(res.data);
this.$router.push("/");
} else {
this.$message.error(res.msg);
}
})
},
loginPWD() {
loginPWD(this.pswform).then(res=>{
if (res.code === 200) {
this.$message.success(res.msg);
// token
this.setToken(res.data);
this.$router.push("/");
} else {
this.$message.error(res.msg);
}
})
},
//
// getCode() {
// sendTelCode(this.form).then((res) => {
// if (res) {
// // this.$message.success("");
// this.$message.success(res.msg +' ' +res.data);
// }
// });
// },
getCode() {
console.log(1);
sendTelCode({tel:this.form.tel}).then((res) => {
if (res) {
// this.$message.success("");
this.$message.success(res.msg +' ' +res.data);
}
});
},
register(){
register
},
onSubmit() {
this.$refs.ruleForm.validate((valid) => {
if (valid) {

@ -91,29 +91,29 @@
<script>
export default {
data() {
return {
form:{
type:'1',
remark:''
},
auditShow: false,
detailData: {},
img: "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimgcdn.scol.com.cn%2FNEWS_1F3371B8BC0CD062D6AF69E363F8E32A.JPG&refer=http%3A%2F%2Fimgcdn.scol.com.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1643355029&t=835fe0ff21af86e6996eb308794df217",
};
},
methods: {
download() {},
cancel() {
this.$router.go(-1);
},
auditSubmit(){
this.auditShow=false
},
auditCancel(){
this.auditShow=false
}
},
data() {
return {
form:{
type:'1',
remark:''
},
auditShow: false,
detailData: {},
img: "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimgcdn.scol.com.cn%2FNEWS_1F3371B8BC0CD062D6AF69E363F8E32A.JPG&refer=http%3A%2F%2Fimgcdn.scol.com.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1643355029&t=835fe0ff21af86e6996eb308794df217",
};
},
methods: {
download() {},
cancel() {
this.$router.go(-1);
},
auditSubmit(){
this.auditShow=false
},
auditCancel(){
this.auditShow=false
}
},
};
</script>

@ -53,123 +53,123 @@
<script>
export default {
data() {
return {
//
searchForm: {
name: "",
code: "",
},
//
columns: [
{
title: "Name",
dataIndex: "name",
width: "200",
},
{
title: "Gender",
dataIndex: "gender",
width: "200",
},
{
title: "Gender1",
dataIndex: "gender1",
width: "200",
},
{
title: "Gender2",
dataIndex: "gender2",
width: "200",
},
{
title: "Gender3",
dataIndex: "gender3",
width: "200",
},
{
title: "Gender4",
dataIndex: "gender4",
width: "200",
},
{
title: "Gender5",
dataIndex: "gender5",
width: "200",
},
{
title: "Gender6",
dataIndex: "gender6",
width: "200",
},
{
title: "status",
dataIndex: "status",
scopedSlots: { customRender: "formatter" },
width: "200",
},
{
title: "操作",
dataIndex: "action",
key: "action",
width: "120",
fixed: "right",
scopedSlots: { customRender: "action" },
},
],
//
tableData: [
{
name: "11",
id: 1,
status: 1,
},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
],
//
pagination: {
current: 1,
total: 0,
pageSize: 10,
showTotal: (total) => `${total}`,
showSizeChanger: true,
showQuickJumper: true,
},
loading: false,
selectedRowKeys: [],
};
},
mounted(){},
computed: {
hasSelected() {
return this.selectedRowKeys.length > 0;
},
},
methods: {
detail(){
this.$router.push({name:'customer_detail'})
},
onSelectChange(selectedRowKeys) {
console.log("selectedRowKeys changed: ", selectedRowKeys);
this.selectedRowKeys = selectedRowKeys;
},
handleTableChange(pagination) {
console.log(pagination);
const pager = { ...this.pagination };
pager.current = pagination.current;
pager.pageSize = pagination.pageSize;
this.pagination = pager;
},
},
data() {
return {
//
searchForm: {
name: "",
code: "",
},
//
columns: [
{
title: "Name",
dataIndex: "name",
width: "200",
},
{
title: "Gender",
dataIndex: "gender",
width: "200",
},
{
title: "Gender1",
dataIndex: "gender1",
width: "200",
},
{
title: "Gender2",
dataIndex: "gender2",
width: "200",
},
{
title: "Gender3",
dataIndex: "gender3",
width: "200",
},
{
title: "Gender4",
dataIndex: "gender4",
width: "200",
},
{
title: "Gender5",
dataIndex: "gender5",
width: "200",
},
{
title: "Gender6",
dataIndex: "gender6",
width: "200",
},
{
title: "status",
dataIndex: "status",
scopedSlots: { customRender: "formatter" },
width: "200",
},
{
title: "操作",
dataIndex: "action",
key: "action",
width: "120",
fixed: "right",
scopedSlots: { customRender: "action" },
},
],
//
tableData: [
{
name: "11",
id: 1,
status: 1,
},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
],
//
pagination: {
current: 1,
total: 0,
pageSize: 10,
showTotal: (total) => `${total}`,
showSizeChanger: true,
showQuickJumper: true,
},
loading: false,
selectedRowKeys: [],
};
},
mounted(){},
computed: {
hasSelected() {
return this.selectedRowKeys.length > 0;
},
},
methods: {
detail(){
this.$router.push({name:'customer_detail'})
},
onSelectChange(selectedRowKeys) {
console.log("selectedRowKeys changed: ", selectedRowKeys);
this.selectedRowKeys = selectedRowKeys;
},
handleTableChange(pagination) {
console.log(pagination);
const pager = { ...this.pagination };
pager.current = pagination.current;
pager.pageSize = pagination.pageSize;
this.pagination = pager;
},
},
};
</script>

@ -91,29 +91,29 @@
<script>
export default {
data() {
return {
form:{
type:'1',
remark:''
},
auditShow: false,
detailData: {},
img: "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimgcdn.scol.com.cn%2FNEWS_1F3371B8BC0CD062D6AF69E363F8E32A.JPG&refer=http%3A%2F%2Fimgcdn.scol.com.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1643355029&t=835fe0ff21af86e6996eb308794df217",
};
},
methods: {
download() {},
cancel() {
this.$router.go(-1);
},
auditSubmit(){
this.auditShow=false
},
auditCancel(){
this.auditShow=false
}
},
data() {
return {
form:{
type:'1',
remark:''
},
auditShow: false,
detailData: {},
img: "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimgcdn.scol.com.cn%2FNEWS_1F3371B8BC0CD062D6AF69E363F8E32A.JPG&refer=http%3A%2F%2Fimgcdn.scol.com.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1643355029&t=835fe0ff21af86e6996eb308794df217",
};
},
methods: {
download() {},
cancel() {
this.$router.go(-1);
},
auditSubmit(){
this.auditShow=false
},
auditCancel(){
this.auditShow=false
}
},
};
</script>

@ -53,124 +53,124 @@
<script>
export default {
data() {
return {
//
searchForm: {
name: "",
code: "",
},
//
columns: [
{
title: "Name",
dataIndex: "name",
width: "200",
},
{
title: "Gender",
dataIndex: "gender",
width: "200",
},
{
title: "Gender1",
dataIndex: "gender1",
width: "200",
},
{
title: "Gender2",
dataIndex: "gender2",
width: "200",
},
{
title: "Gender3",
dataIndex: "gender3",
width: "200",
},
{
title: "Gender4",
dataIndex: "gender4",
width: "200",
},
{
title: "Gender5",
dataIndex: "gender5",
width: "200",
},
{
title: "Gender6",
dataIndex: "gender6",
width: "200",
},
{
title: "status",
dataIndex: "status",
scopedSlots: { customRender: "formatter" },
width: "200",
},
{
title: "操作",
dataIndex: "action",
key: "action",
width: "80",
fixed: "right",
scopedSlots: { customRender: "action" },
},
],
//
tableData: [
{
name: "11",
id: 1,
status: 1,
},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
],
//
pagination: {
current: 1,
total: 0,
pageSize: 10,
showTotal: (total) => `${total}`,
showSizeChanger: true,
showQuickJumper: true,
},
loading: false,
selectedRowKeys: [],
};
},
mounted(){},
computed: {
hasSelected() {
return this.selectedRowKeys.length > 0;
},
},
methods: {
detail(data){
console.log(data);
this.$router.push({name:'settle_detail'})
},
onSelectChange(selectedRowKeys) {
console.log("selectedRowKeys changed: ", selectedRowKeys);
this.selectedRowKeys = selectedRowKeys;
},
handleTableChange(pagination) {
console.log(pagination);
const pager = { ...this.pagination };
pager.current = pagination.current;
pager.pageSize = pagination.pageSize;
this.pagination = pager;
},
},
data() {
return {
//
searchForm: {
name: "",
code: "",
},
//
columns: [
{
title: "Name",
dataIndex: "name",
width: "200",
},
{
title: "Gender",
dataIndex: "gender",
width: "200",
},
{
title: "Gender1",
dataIndex: "gender1",
width: "200",
},
{
title: "Gender2",
dataIndex: "gender2",
width: "200",
},
{
title: "Gender3",
dataIndex: "gender3",
width: "200",
},
{
title: "Gender4",
dataIndex: "gender4",
width: "200",
},
{
title: "Gender5",
dataIndex: "gender5",
width: "200",
},
{
title: "Gender6",
dataIndex: "gender6",
width: "200",
},
{
title: "status",
dataIndex: "status",
scopedSlots: { customRender: "formatter" },
width: "200",
},
{
title: "操作",
dataIndex: "action",
key: "action",
width: "80",
fixed: "right",
scopedSlots: { customRender: "action" },
},
],
//
tableData: [
{
name: "11",
id: 1,
status: 1,
},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
],
//
pagination: {
current: 1,
total: 0,
pageSize: 10,
showTotal: (total) => `${total}`,
showSizeChanger: true,
showQuickJumper: true,
},
loading: false,
selectedRowKeys: [],
};
},
mounted(){},
computed: {
hasSelected() {
return this.selectedRowKeys.length > 0;
},
},
methods: {
detail(data){
console.log(data);
this.$router.push({name:'settle_detail'})
},
onSelectChange(selectedRowKeys) {
console.log("selectedRowKeys changed: ", selectedRowKeys);
this.selectedRowKeys = selectedRowKeys;
},
handleTableChange(pagination) {
console.log(pagination);
const pager = { ...this.pagination };
pager.current = pagination.current;
pager.pageSize = pagination.pageSize;
this.pagination = pager;
},
},
};
</script>

@ -19,135 +19,135 @@
<script>
export default {
data() {
return {
tableChoosed: [],
//
pagination: {
current: 1,
total: 0,
pageSize: 10,
},
//
columns: [
{
title: "Name",
dataIndex: "name",
width: "200",
},
{
title: "Gender",
dataIndex: "gender",
width: "200",
customRender: function (gender) {
if (gender === 1) {
return "是";
} else {
return "否";
}
},
},
{
title: "Gender1",
dataIndex: "gender1",
width: "200",
},
{
title: "Gender2",
dataIndex: "gender2",
width: "200",
},
{
title: "Gender3",
dataIndex: "gender3",
width: "200",
},
{
title: "Gender4",
dataIndex: "gender4",
width: "200",
},
{
title: "Gender5",
dataIndex: "gender5",
width: "200",
},
{
title: "Gender6",
dataIndex: "gender6",
width: "200",
},
{
title: "status",
dataIndex: "status",
data() {
return {
tableChoosed: [],
//
pagination: {
current: 1,
total: 0,
pageSize: 10,
},
//
columns: [
{
title: "Name",
dataIndex: "name",
width: "200",
},
{
title: "Gender",
dataIndex: "gender",
width: "200",
customRender: function (gender) {
if (gender === 1) {
return "是";
} else {
return "否";
}
},
},
{
title: "Gender1",
dataIndex: "gender1",
width: "200",
},
{
title: "Gender2",
dataIndex: "gender2",
width: "200",
},
{
title: "Gender3",
dataIndex: "gender3",
width: "200",
},
{
title: "Gender4",
dataIndex: "gender4",
width: "200",
},
{
title: "Gender5",
dataIndex: "gender5",
width: "200",
},
{
title: "Gender6",
dataIndex: "gender6",
width: "200",
},
{
title: "status",
dataIndex: "status",
width: "200",
},
{
title: "操作",
dataIndex: "action",
key: "action",
width: "180",
fixed: "right",
scopedSlots: { customRender: "action" },
},
],
//
tableData: [
{ name: 1, gender: 1 },
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
],
ActionsList: [
{
label: "批量删除",
value: 1,
},
{
label: "批量导出",
value: 2,
},
],
};
},
methods: {
handleTableChange(pagination) {
console.log(pagination);
const pager = { ...this.pagination };
pager.current = pagination.current;
pager.pageSize = pagination.pageSize;
this.pagination = pager;
},
del(data) {
console.log(data);
},
Actions(data) {
console.log(data);
},
selectionChoosed(data) {
console.log(data);
this.tableChoosed = data
},
},
width: "200",
},
{
title: "操作",
dataIndex: "action",
key: "action",
width: "180",
fixed: "right",
scopedSlots: { customRender: "action" },
},
],
//
tableData: [
{ name: 1, gender: 1 },
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
],
ActionsList: [
{
label: "批量删除",
value: 1,
},
{
label: "批量导出",
value: 2,
},
],
};
},
methods: {
handleTableChange(pagination) {
console.log(pagination);
const pager = { ...this.pagination };
pager.current = pagination.current;
pager.pageSize = pagination.pageSize;
this.pagination = pager;
},
del(data) {
console.log(data);
},
Actions(data) {
console.log(data);
},
selectionChoosed(data) {
console.log(data);
this.tableChoosed = data
},
},
};
</script>

@ -7,9 +7,9 @@
* @FilePath: /ansu-business/vue.config.js
*/
module.exports = {
// ...
runtimeCompiler: true,
// ...
runtimeCompiler: true,
// ...
};
// ...
};
Loading…
Cancel
Save