Browse Source

fix:修改发布新版本

confidence
杜贤金 3 years ago
parent
commit
0cdf36dd55
  1. 15
      src/api/communication/basiccard.js
  2. 8
      src/api/communication/outbound.js
  3. 26
      src/api/ordermanage/mallorders.js
  4. 2
      src/config/website.js
  5. 132
      src/option/system/dict.js
  6. 24
      src/router/axios.js
  7. 50
      src/views/communicationmanage/basiccard/basiccard.vue
  8. 20
      src/views/communicationmanage/device/device.vue
  9. 132
      src/views/communicationmanage/outbound/outbound.vue
  10. 2
      src/views/mallmanagement/bank/index.vue
  11. 1
      src/views/mallmanagement/classify/index.vue
  12. 72
      src/views/mallmanagement/shopmanagement/index.vue
  13. 461
      src/views/ordermanage/mallorders/index.vue
  14. 2
      src/views/ordermanage/payondelivery/index.vue
  15. 2
      src/views/original/targetpackagegroupmanage/index.vue
  16. 33
      src/views/package/basicpackage/index.vue
  17. 49
      src/views/package/packagegroup/index.vue
  18. 48
      src/views/package/targetpackagegroupmanage/index.vue
  19. 22
      src/views/package/targetpackagemanage/index.vue
  20. 756
      src/views/system/menu.vue
  21. 4
      src/views/wel/component/Administrator.vue

15
src/api/communication/basiccard.js

@ -101,21 +101,30 @@ export const flowpoolfillData = () => {
}
//基础套餐
export const dataplan = () => {
export const dataplan = (dataPlanGroupId) => {
return request({
url: '/api/iot-sim/dataplan/fillData?isSource=' + 2,
url: '/api/iot-sim/dataplan/fillData?isSource=' + 2 + "&dataPlanGroupId=" + dataPlanGroupId,
method: 'get',
})
}
//基础套餐组
export const dataplangroup = () => {
return request({
url: '/api/iot-sim/dataplangroup/fillData?isSource=' + 2,
method: 'get',
})
}
export const deliver = (tenantId,dataPlanId,id) => {
export const deliver = (tenantId, dataPlanId, dataPlanGroupId, id) => {
return request({
url: '/api/iot-sim/simcard/deliver',
method: 'post',
params: {
tenantId,
dataPlanId,
dataPlanGroupId,
id
}
})

8
src/api/communication/outbound.js

@ -100,3 +100,11 @@ export const updateThreshold = (row) => {
}
})
}
//基础套餐
export const dataplan = (dataPlanGroupId) => {
return request({
url: '/api/iot-sim/dataplan/fillData?isSource=' + 2 + "&dataPlanGroupId=" + dataPlanGroupId,
method: 'get',
})
}

26
src/api/ordermanage/mallorders.js

@ -36,7 +36,9 @@ export const add = (row) => {
return request({
url: '/api/iot-sim/orders/save',
method: 'post',
data: row
data: {
...row
}
})
}
//修改
@ -79,7 +81,7 @@ export const deviceDeliver = (query) => {
})
}
//接口类型
export const interfaceType = (current, size) => {
export const interfaceType = () => {
return request({
url: '/api/iot-system/dict/dictionary?code=interface_type',
method: 'get',
@ -104,3 +106,23 @@ export const getParcel = (id) => {
}
})
}
//商品下拉
export const productfillData = (id) => {
return request({
url: '/api/iot-sim/product/fillData',
method: 'get',
params: {
id
}
})
}
//规格下拉
export const productspecsfillData = (productId) => {
return request({
url: '/api/iot-sim/productspecs/fillData',
method: 'get',
params: {
productId
}
})
}

2
src/config/website.js

@ -4,7 +4,7 @@
export default {
title: "saber",
logo: "S",
key: 'saber',//配置主键,目前用于存储
key: 'saber', //配置主键,目前用于存储
indexTitle: '物联网平台',
clientId: 'falcon', // 客户端id
clientSecret: 'falcon_secret', // 客户端密钥

132
src/option/system/dict.js

@ -11,33 +11,28 @@ export const optionParent = {
menuWidth: 250,
dialogWidth: 880,
dialogClickModal: false,
column: [
{
column: [{
label: "字典编号",
prop: "code",
search: true,
slot: true,
span: 24,
rules: [
{
required: true,
message: "请输入字典编号",
trigger: "blur"
}
]
rules: [{
required: true,
message: "请输入字典编号",
trigger: "blur"
}]
},
{
label: "字典名称",
prop: "dictValue",
search: true,
align: "center",
rules: [
{
required: true,
message: "请输入字典名称",
trigger: "blur"
}
]
rules: [{
required: true,
message: "请输入字典名称",
trigger: "blur"
}]
},
{
label: "字典排序",
@ -45,13 +40,11 @@ export const optionParent = {
type: "number",
align: "right",
width: 100,
rules: [
{
required: true,
message: "请输入字典排序",
trigger: "blur"
}
]
rules: [{
required: true,
message: "请输入字典排序",
trigger: "blur"
}]
},
{
label: "封存",
@ -59,8 +52,7 @@ export const optionParent = {
type: "switch",
align: "center",
width: 100,
dicData: [
{
dicData: [{
label: "否",
value: 0
},
@ -71,13 +63,11 @@ export const optionParent = {
],
value: 0,
slot: true,
rules: [
{
required: true,
message: "请选择封存",
trigger: "blur"
}
]
rules: [{
required: true,
message: "请选择封存",
trigger: "blur"
}]
},
{
label: "字典备注",
@ -101,34 +91,29 @@ export const optionChild = {
menuWidth: 300,
dialogWidth: 880,
dialogClickModal: false,
column: [
{
column: [{
label: "字典编号",
prop: "code",
addDisabled: true,
editDisabled: true,
search: true,
span: 24,
rules: [
{
required: true,
message: "请输入字典编号",
trigger: "blur"
}
]
rules: [{
required: true,
message: "请输入字典编号",
trigger: "blur"
}]
},
{
label: "字典名称",
prop: "dictValue",
search: true,
align: "center",
rules: [
{
required: true,
message: "请输入字典名称",
trigger: "blur"
}
]
rules: [{
required: true,
message: "请输入字典名称",
trigger: "blur"
}]
},
{
label: "上级字典",
@ -141,25 +126,21 @@ export const optionChild = {
},
addDisabled: true,
editDisabled: true,
rules: [
{
required: false,
message: "请选择上级字典",
trigger: "click"
}
]
rules: [{
required: false,
message: "请选择上级字典",
trigger: "click"
}]
},
{
label: "字典键值",
prop: "dictKey",
width: 80,
rules: [
{
required: true,
message: "请输入字典键值",
trigger: "blur"
}
]
rules: [{
required: true,
message: "请输入字典键值",
trigger: "blur"
}]
},
{
label: "字典排序",
@ -167,13 +148,11 @@ export const optionChild = {
type: "number",
align: "right",
hide: true,
rules: [
{
required: true,
message: "请输入字典排序",
trigger: "blur"
}
]
rules: [{
required: true,
message: "请输入字典排序",
trigger: "blur"
}]
},
{
label: "封存",
@ -181,8 +160,7 @@ export const optionChild = {
type: "switch",
align: "center",
width: 80,
dicData: [
{
dicData: [{
label: "否",
value: 0
},
@ -193,13 +171,11 @@ export const optionChild = {
],
value: 0,
slot: true,
rules: [
{
required: true,
message: "请选择封存",
trigger: "blur"
}
]
rules: [{
required: true,
message: "请选择封存",
trigger: "blur"
}]
},
{
label: "字典备注",

24
src/router/axios.js

@ -8,14 +8,24 @@
import axios from 'axios';
import store from '@/store/';
import router from '@/router/router';
import {serialize} from '@/util/util';
import {getToken} from '@/util/auth';
import {Message} from 'element-ui';
import {
serialize
} from '@/util/util';
import {
getToken
} from '@/util/auth';
import {
Message
} from 'element-ui';
import website from '@/config/website';
import {Base64} from 'js-base64';
import {
Base64
} from 'js-base64';
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
import {baseUrl} from '@/config/env';
import {
baseUrl
} from '@/config/env';
//默认超时时间
axios.defaults.timeout = 300000;
@ -67,7 +77,9 @@ axios.interceptors.response.use(res => {
//如果在白名单里则自行catch逻辑处理
if (statusWhiteList.includes(status)) return Promise.reject(res);
//如果是401则跳转到登录页面
if (status === 401) store.dispatch('FedLogOut').then(() => router.push({path: '/login'}));
if (status === 401) store.dispatch('FedLogOut').then(() => router.push({
path: '/login'
}));
// 如果请求为非200否者默认统一处理
if (status !== 200) {
Message({

50
src/views/communicationmanage/basiccard/basiccard.vue

@ -131,6 +131,26 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item
label="基础套餐组"
prop="dataPlanGroupId"
v-if="distitle == '分拨' || distitle == '出库'"
>
<el-select
v-model="distribution.dataPlanGroupId"
placeholder="请选择基础套餐"
size="mini"
style="width: 90%"
@change="handledataPlanGroup"
>
<el-option
v-for="(item, index) in basicpackgegroup"
:label="item.name"
:value="item.id"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label="基础套餐"
prop="dataPlanId"
@ -150,6 +170,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item
label="开始/结束号码"
prop="numbers"
@ -203,6 +224,7 @@ import {
dataplan,
simCallback,
deliver,
dataplangroup,
} from "@/api/communication/basiccard";
import { mapGetters } from "vuex";
import { getToken } from "@/util/auth";
@ -358,6 +380,7 @@ export default {
numStart: "", //
numEnd: "", //
dataPlanId: "",
dataPlanGroupId: "", //
}, //
redistribution: {
numStart: null, //
@ -365,6 +388,7 @@ export default {
}, //
distributionlist: [], //
basicpackge: [], //
basicpackgegroup: [],
tenantlist: [], //
distrules: {
tenantId: [
@ -377,6 +401,9 @@ export default {
dataPlanId: [
{ required: true, message: "请选择基础套餐", trigger: "change" },
],
dataPlanGroupId: [
{ required: true, message: "请选择基础套餐组", trigger: "change" },
],
},
channellist: [], //
ruleForm: {}, //
@ -652,7 +679,8 @@ export default {
created() {
this.allocatelist(); //
this.tenantlists(); //
this.basicpackges(); //
this.basicpackgesgroup(); //
},
watch: {
"excelForm.tenantId"() {
@ -866,14 +894,29 @@ export default {
}
});
},
//
basicpackgesgroup() {
dataplangroup().then((res) => {
if (res.data.code == 200) {
this.basicpackgegroup = res.data.data;
}
});
},
//-
handledataPlanGroup(e) {
this.distribution.dataPlanId = "";
this.basicpackges(e);
},
//
basicpackges() {
dataplan().then((res) => {
basicpackges(id) {
dataplan(id).then((res) => {
if (res.data.code == 200) {
this.basicpackge = res.data.data;
}
});
},
//
tenantlists() {
tenant().then((res) => {
@ -951,6 +994,7 @@ export default {
deliver(
this.distribution.tenantId,
this.distribution.dataPlanId,
this.distribution.dataPlanGroupId,
this.deliverId
).then((res) => {
if (res.data.data == 1) {

20
src/views/communicationmanage/device/device.vue

@ -149,7 +149,25 @@ export default {
width: 140,
search: true,
rules: [
{ required: true, message: "请选择租户名称", trigger: "change" },
{ required: false, message: "请选择租户名称", trigger: "change" },
],
},
{
label: "用户名称",
prop: "userId",
type: "select",
dicUrl: "/api/iot-system/user/fillData",
props: {
label: "account",
value: "id",
},
dataType: "String",
span: 12,
labelWidth: 130,
width: 140,
search: true,
rules: [
{ required: false, message: "请选择租户名称", trigger: "change" },
],
},
{

132
src/views/communicationmanage/outbound/outbound.vue

@ -20,6 +20,22 @@
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template slot-scope="{ type, size, row }" slot="dataPlanIdForm">
<el-select
v-model="form.dataPlanId"
placeholder="请选择"
:size="size"
:type="type"
>
<el-option
v-for="item in dataPlanGroup"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</template>
<template slot="menuLeft">
<el-button
size="small"
@ -229,6 +245,7 @@ import {
syncRealNameStatus,
updateSimStatus,
updateThreshold,
dataplan,
} from "@/api/communication/outbound";
import { syncUsage } from "@/api/informationmanage/sim.js";
import { mapGetters } from "vuex";
@ -299,6 +316,7 @@ export default {
{ required: true, message: "请选择导出类型", trigger: "change" },
],
},
dataPlanGroup: [],
page: {
pageSize: 10,
currentPage: 1,
@ -338,6 +356,40 @@ export default {
},
],
},
{
label: "msisdn",
prop: "msisdn",
span: 12,
width: 150,
labelWidth: 130,
addDisplay: false,
search: true,
editDisplay: false,
rules: [
{
required: true,
message: "请输入msisdn",
trigger: "blur",
},
],
},
{
label: "iccid",
prop: "iccid",
width: 150,
span: 12,
labelWidth: 130,
search: true,
editDisplay: false,
rules: [
{
required: true,
message: "请输入iccid",
trigger: "blur",
},
],
},
{
label: "租户名称",
prop: "tenantId",
@ -430,6 +482,29 @@ export default {
},
],
},
{
label: "基础套餐组",
prop: "dataPlanGroupId",
type: "select",
dicUrl: "/api/iot-sim/dataplangroup/fillData?isSource=" + 2,
props: {
label: "name",
value: "id",
},
dataType: "String",
span: 12,
labelWidth: 130,
searchLabelWidth: 110,
width: 110,
search: false,
rules: [
{
required: true,
message: "请选择基础套餐组",
trigger: "change",
},
],
},
{
label: "基础套餐",
prop: "dataPlanId",
@ -440,6 +515,7 @@ export default {
value: "id",
},
dataType: "String",
formslot: true,
span: 12,
labelWidth: 130,
searchLabelWidth: 110,
@ -602,29 +678,17 @@ export default {
},
],
},
{
label: "iccid",
prop: "iccid",
width: 150,
span: 12,
labelWidth: 130,
search: true,
rules: [
{
required: true,
message: "请输入iccid",
trigger: "blur",
},
],
},
{
label: "imsi",
prop: "imsi",
span: 12,
width: 150,
labelWidth: 130,
search: true,
search: false,
addDisplay: false,
editDisplay: false,
hide: true,
rules: [
{
required: true,
@ -633,22 +697,7 @@ export default {
},
],
},
{
label: "msisdn",
prop: "msisdn",
span: 12,
width: 150,
labelWidth: 130,
addDisplay: false,
search: true,
rules: [
{
required: true,
message: "请输入msisdn",
trigger: "blur",
},
],
},
{
label: "剩余流量(M)",
prop: "surplusM",
@ -730,6 +779,17 @@ export default {
}
}
},
"form.dataPlanGroupId"() {
if (this.form.dataPlanGroupId) {
dataplan(this.form.dataPlanGroupId).then((res) => {
if (res.data.code == 200) {
this.dataPlanGroup = res.data.data;
}
});
} else {
this.dataPlanGroup = [];
}
},
},
created() {
this.tenantlists(); //
@ -737,14 +797,6 @@ export default {
this.exportTypelistlists(); //
},
computed: {
...mapGetters(["permission"]),
permissionList() {
return {
// viewBtn: this.vaildData(this.permission.sourceApi_view, false),
// editBtn: this.vaildData(this.permission.sourceApi_edit, false),
// delBtn: this.vaildData(this.permission.sourceApi_delete, false),
};
},
ids() {
let ids = [];
this.selectionList.forEach((ele) => {

2
src/views/mallmanagement/bank/index.vue

@ -44,7 +44,7 @@ export default {
index: true,
viewBtn: true,
columnBtn: true,
addBtn: true,
addBtn: false,
editBtn: false,
delBtn: false,
dialogClickModal: false,

1
src/views/mallmanagement/classify/index.vue

@ -22,7 +22,6 @@
</avue-crud>
</basic-container>
</template>
<script>
import {
add,

72
src/views/mallmanagement/shopmanagement/index.vue

@ -20,6 +20,22 @@
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template slot-scope="{ type, size, row }" slot="dataPlanIdForm">
<el-select
v-model="form.dataPlanId"
placeholder="请选择"
:size="size"
:type="type"
>
<el-option
v-for="item in dataPlanGroup"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</template>
</avue-crud>
</basic-container>
</template>
@ -32,6 +48,7 @@ import {
remove,
update,
} from "@/api/mallmanagement/shopmanagement";
import { dataplan } from "@/api/communication/outbound";
import { substr } from "@/util/util";
export default {
data() {
@ -44,6 +61,7 @@ export default {
currentPage: 1,
total: 0,
},
dataPlanGroup: [],
option: {
tip: false,
searchShow: true,
@ -102,16 +120,22 @@ export default {
},
dataType: "number",
control: (val, form) => {
if (val == "2") {
if (val == "3") {
return {
dataPlanId: {
display: false,
display: true,
},
dataPlanGroupId: {
display: true,
},
};
} else {
return {
dataPlanId: {
display: true,
display: false,
},
dataPlanGroupId: {
display: false,
},
};
}
@ -124,6 +148,29 @@ export default {
},
],
},
{
label: "基础套餐组名称",
prop: "dataPlanGroupId",
span: 12,
type: "select",
searchLabelWidth: 120,
search: false,
hide: true,
labelWidth: 130,
dicUrl: "/api/iot-sim/dataplangroup/fillData?isSource=" + 2,
props: {
label: "name",
value: "id",
},
dataType: "String",
rules: [
{
required: true,
message: "请选择套餐组名称",
trigger: "change",
},
],
},
{
label: "基础套餐",
prop: "dataPlanId",
@ -139,9 +186,10 @@ export default {
searchLabelWidth: 110,
width: 110,
search: true,
hide: true,
rules: [
{
required: false,
required: true,
message: "请选择基础套餐",
trigger: "change",
},
@ -332,8 +380,20 @@ export default {
},
watch: {
"form.type"() {
if (this.form.type == 2) {
this.form.dataPlanId = "";
if (this.form.type != 3) {
this.form.dataPlanGroupId = undefined;
this.form.dataPlanId = undefined;
}
},
"form.dataPlanGroupId"() {
if (this.form.dataPlanGroupId) {
dataplan(this.form.dataPlanGroupId).then((res) => {
if (res.data.code == 200) {
this.dataPlanGroup = res.data.data;
}
});
} else {
this.dataPlanGroup = [];
}
},
},

461
src/views/ordermanage/mallorders/index.vue

@ -19,7 +19,94 @@
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template slot-scope="scope" slot="productIdForm">
<el-form :model="dynamicValidateForm" ref="dynamicValidateForm">
<el-form-item
style="margin: 0 0 15px 0"
v-for="(domain, index) in dynamicValidateForm.domains"
:key="index"
:prop="'domains.' + index + '.productId'"
:rules="{
required: true,
message: '请选择商品',
trigger: 'change',
}"
>
<el-select
v-model="domain.productId"
placeholder="请选择"
@change="handleProduct"
size="small"
>
<el-option
v-for="item in productIdArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
</template>
<template slot-scope="scope" slot="productSpecsIdForm">
<el-form :model="dynamicValidateForm" ref="dynamicValidateForm">
<el-form-item
style="margin: 0 0 15px 0"
v-for="(domain, index) in dynamicValidateForm.domains"
:key="index"
>
<el-select
v-model="domain.productSpecsId"
placeholder="请选择"
size="small"
>
<el-option
v-for="item in productSpecsIdArr"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
</template>
<template slot-scope="scope" slot="itemnumForm">
<el-form
v-for="(domain, index) in dynamicValidateForm.domains"
:key="index"
style="display: flex"
>
<el-form-item
style="margin: 0 0 15px 0"
:rules="{
required: true,
message: '商品数量不能为空',
trigger: 'blur',
}"
>
<el-input
v-model="domain.itemnum"
placeholder="数量"
size="small"
type="number"
min="1"
></el-input>
</el-form-item>
<div v-if="index > 0">
<el-button @click.prevent="removeDomain(domain)">删除</el-button>
</div>
<div v-else>
<el-button @click.prevent="addDomain(domain)">新增</el-button>
</div>
</el-form>
</template>
<template slot-scope="scope" slot="menu">
<el-button @click="handleView(scope.row)" type="text" size="mini"
><span class="el-icon-view"></span> &nbsp;查看</el-button
>
<el-button
@click="handleShiporder(scope.row)"
type="text"
@ -36,6 +123,7 @@
>
</template>
</avue-crud>
<!-- 发货单 -->
<el-dialog
title="发货单"
v-dialogDrag
@ -241,7 +329,7 @@
v-for="(item, index) in basicpackge"
:label="item.name"
:value="item.id"
:key="item.id"
:key="index"
></el-option>
</el-select>
</el-form-item>
@ -259,6 +347,7 @@
</el-button>
</div>
</el-dialog>
<!-- 物流信息 -->
<el-dialog
title="物流信息"
v-dialogDrag
@ -279,6 +368,111 @@
</el-timeline-item>
</el-timeline>
</el-dialog>
<!-- 查看 -->
<el-dialog
title="查看"
v-dialogDrag
:visible.sync="viewVisiable"
class="avue-dialog avue-dialog--top"
append-to-body
:close-on-click-modal="false"
:before-close="handleViewClose"
>
<el-form ref="form" :model="form" label-width="120px">
<el-row :gutter="24">
<el-card class="box-card" shadow="never">
<div slot="header" class="clearfix">
<span>订单信息</span>
</div>
<el-col :span="12">
<el-form-item label="订单编号:">
<span>{{ form.id }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="下单用户:">
<span>{{ form.shippingName }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否需要发货:">
<span v-if="form.isDelivery == 1">不需要</span>
<span v-if="form.isDelivery == 2">需要发货</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="订单状态:">
<span v-if="form.orderStatus == 0">已取消</span>
<span v-if="form.orderStatus == 2">待付款</span>
<span v-if="form.orderStatus == 3">待发货</span>
<span v-if="form.orderStatus == 4">待收货</span>
<span v-if="form.orderStatus == 5">已完成</span>
<span v-if="form.orderStatus == 6">退款售后</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="订单金额:">
<span>{{ form.price }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="支付方式:">
<span v-if="form.payment == 1">微信</span>
<span v-if="form.payment == 2">支付宝</span>
<span v-if="form.payment == 3">现金</span>
<span v-if="form.payment == 4">货到付款</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="收货人手机号:">
<span>{{ form.consigneePhone }}</span>
</el-form-item>
</el-col>
</el-card>
</el-row>
<el-row :gutter="24">
<el-card
class="box-card"
shadow="never"
v-for="(item, index) in form.ordersDetailsList"
:key="index"
>
<div slot="header" class="clearfix" v-if="index < 1">
<span>商品信息</span>
</div>
<el-col :span="12">
<el-form-item label="商品名称:">
<span>{{ item.productName }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="商品单价:">
<span>{{ item.productSpecsPrice }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="购买数量:">
<span>{{ item.itemnum }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="商品规格名称:">
<span>{{ item.productSpecsName }}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="商品图片:">
<el-image
style="width: 80px; height: 80px"
:fit="contain"
:src="item.productThumb"
></el-image>
</el-form-item>
</el-col>
</el-card>
</el-row>
</el-form>
</el-dialog>
</basic-container>
</template>
@ -295,11 +489,22 @@ import {
interfaceType,
dataplan,
getParcel,
productfillData,
productspecsfillData,
} from "@/api/ordermanage/mallorders";
export default {
data() {
return {
form: {},
dynamicValidateForm: {
domains: [
{
productId: "",
productSpecsId: "",
itemnum: "",
},
],
},
query: {},
loading: true,
page: {
@ -317,19 +522,19 @@ export default {
searchMenuSpan: 6,
border: true,
index: true,
viewBtn: true,
viewBtn: false,
columnBtn: true,
addBtn: true,
dialogClickModal: false,
dialogWidth: "45%",
labelWidth: 110,
// searchLabelWidth: 100,
dialogWidth: "65%",
labelWidth: 130,
column: [
{
label: "订单编号",
prop: "id",
search: true,
addDisplay: false,
editDisplay: false,
rules: [
{
required: true,
@ -339,25 +544,53 @@ export default {
],
},
{
label: "商品名称",
prop: "productName",
label: "下单用户",
prop: "userId",
search: true,
editDisplay: false,
type: "select",
props: {
label: "account",
value: "id",
},
dicUrl: "/api/iot-system/user/fillData",
rules: [
{
required: true,
message: "请输入商品名称",
trigger: "blur",
message: "请选择下单用户",
trigger: "change",
},
],
},
{
label: "商品类型",
prop: "productType",
label: "发货",
prop: "isDelivery",
type: "select",
search: false,
dataType: "number",
dicData: [
{
label: "不需要",
value: 1,
},
{
label: "需要发货",
value: 2,
},
],
rules: [
{
required: true,
message: "请选择是否需要发货",
trigger: "change",
},
],
},
{
label: "订单状态",
prop: "orderStatus",
type: "select",
search: true,
editDisplay: false,
dicUrl: "/api/iot-system/dict/dictionary?code=shop_type",
dicUrl: "/api/iot-system/dict/dictionary?code=order_status",
props: {
label: "dictValue",
value: "dictKey",
@ -366,90 +599,160 @@ export default {
rules: [
{
required: true,
message: "请选择商品类型",
trigger: "blur",
message: "请选择订单状态",
trigger: "change",
},
],
},
{
label: "订购数量",
prop: "itemnum",
label: "订单金额",
prop: "price",
search: true,
rules: [
{
required: true,
message: "请输入订购数量",
message: "请输入订单金额",
trigger: "blur",
},
],
},
{
label: "下单用户",
prop: "shippingName",
label: "支付方式",
prop: "payment",
type: "select",
search: true,
dicUrl: "/api/iot-system/dict/dictionary?code=payment",
props: {
label: "dictValue",
value: "dictKey",
},
dataType: "number",
rules: [
{
required: true,
message: "请输入下单用户",
trigger: "blur",
message: "请选择支付方式",
trigger: "change",
},
],
},
{
label: "是否需要发货",
prop: "isDelivery",
type: "select",
label: "收货人手机号",
prop: "consigneePhone",
search: false,
dataType: "number",
dicData: [
rules: [
{
label: "不需要",
value: 1,
required: true,
message: "请输入收货人手机号",
trigger: "blur",
},
],
},
{
label: "省份",
prop: "provence",
type: "select",
props: {
label: "name",
value: "code",
},
cascaderItem: ["city", "area"],
dicUrl: "/api/iot-system/region/select",
rules: [
{
label: "需要发货",
value: 2,
required: true,
message: "请选择省份",
trigger: "blur",
},
],
},
{
label: "市",
prop: "city",
type: "select",
props: {
label: "name",
value: "code",
},
dicFlag: false,
dicUrl: "/api/iot-system/region/select?code={{key}}",
rules: [
{
required: true,
message: "请选择是否需要发货",
trigger: "change",
message: "请选择",
trigger: "blur",
},
],
},
{
label: "订单状态",
prop: "status",
label: "",
prop: "area",
type: "select",
search: true,
dicUrl: "/api/iot-system/dict/dictionary?code=order_status",
props: {
label: "dictValue",
value: "dictKey",
label: "name",
value: "code",
},
dataType: "number",
dicFlag: false,
dicUrl: "/api/iot-system/region/select?code={{key}}",
rules: [
{
required: true,
message: "请选择订单状态",
trigger: "change",
message: "请选择",
trigger: "blur",
},
],
},
{
label: "订单金额",
prop: "price",
search: true,
label: "详细地址",
prop: "shippingAddress",
search: false,
hide: true,
rules: [
{
required: true,
message: "请输入订单金额",
message: "请输入详细地址",
trigger: "blur",
},
],
},
{
label: "商品名称",
prop: "productId",
type: "select",
search: false,
formslot: true,
labelslot: true,
hide: true,
span: 8,
props: {
label: "name",
value: "id",
},
dicUrl: "/api/iot-sim/product/fillData",
},
{
label: "商品规格",
prop: "productSpecsId",
type: "select",
search: false,
span: 8,
hide: true,
formslot: true,
labelslot: true,
props: {
label: "name",
value: "id",
},
dicUrl: "/api/iot-sim/productspecs/fillData",
},
{
label: "商品数量",
prop: "itemnum",
search: false,
labelslot: true,
span: 8,
hide: true,
formslot: true,
},
],
},
data: [],
@ -498,10 +801,17 @@ export default {
{ required: false, message: "请选择出库商品", trigger: "blur" },
],
},
viewVisiable: false, //
productIdArr: [], //
productSpecsIdArr: [], //
};
},
methods: {
rowSave(row, done, loading) {
row.specsAndNum = this.dynamicValidateForm.domains;
row.area = row.$area;
row.city = row.$city;
row.provence = row.$provence;
add(row).then(
() => {
this.onLoad(this.page);
@ -509,6 +819,7 @@ export default {
type: "success",
message: "操作成功!",
});
this.dynamicValidateForm.domains = [];
done();
},
(error) => {
@ -518,6 +829,10 @@ export default {
);
},
rowUpdate(row, index, done, loading) {
row.specsAndNum = this.dynamicValidateForm.domains;
row.area = row.$area;
row.city = row.$city;
row.provence = row.$provence;
update(row).then(
() => {
this.onLoad(this.page);
@ -525,6 +840,7 @@ export default {
type: "success",
message: "操作成功!",
});
this.dynamicValidateForm.domains = [];
done();
},
(error) => {
@ -551,13 +867,64 @@ export default {
});
},
beforeOpen(done, type) {
this.dynamicValidateForm.domains = [
{
productId: "",
productSpecsId: "",
itemnum: "",
},
];
if (["edit", "view"].includes(type)) {
getDetail(this.form.id).then((res) => {
this.form = res.data.data;
this.dynamicValidateForm.domains = res.data.data.ordersDetailsList;
});
}
productfillData().then((res) => {
if (res.data.code == 200) {
this.productIdArr = res.data.data;
}
});
done();
},
handleProduct(e) {
this.form.productSpecsId = undefined;
this.productspecsfillDatas(e);
},
//
productspecsfillDatas(id) {
productspecsfillData(id).then((res) => {
if (res.data.code == 200) {
this.productSpecsIdArr = res.data.data;
}
});
},
//
addDomain() {
this.dynamicValidateForm.domains.push({
productId: "",
productSpecsId: "",
itemnum: "",
});
},
//
removeDomain(item) {
var index = this.dynamicValidateForm.domains.indexOf(item);
if (index !== -1) {
this.dynamicValidateForm.domains.splice(index, 1);
}
},
handleView(row) {
this.viewVisiable = true;
getDetail(row.id).then((res) => {
this.form = res.data.data;
});
},
handleViewClose() {
this.viewVisiable = false;
this.form = {};
},
searchReset() {
this.query = {};
this.onLoad(this.page);

2
src/views/ordermanage/payondelivery/index.vue

@ -117,7 +117,7 @@ export default {
},
{
label: "订单状态",
prop: "status",
prop: "orderStatus",
type: "select",
dicUrl: "/api/iot-system/dict/dictionary?code=order_status",
search: true,

2
src/views/original/targetpackagegroupmanage/index.vue

@ -86,7 +86,7 @@ export default {
searchLabelWidth: 120,
search: true,
labelWidth: 130,
dicUrl: "/api/iot-system/dict/dictionary?code=dataPlanGroupType",
dicUrl: "/api/iot-system/dict/dictionary?code=dataPlanType",
props: {
label: "dictValue",
value: "dictKey",

33
src/views/package/basicpackage/index.vue

@ -122,6 +122,28 @@ export default {
],
},
{
label: "生效类型",
prop: "activateType",
span: 12,
type: "select",
searchLabelWidth: 100,
search: true,
labelWidth: 130,
dicUrl: "/api/iot-system/dict/dictionary?code=activateType",
props: {
label: "dictValue",
value: "dictKey",
},
dataType: "number",
rules: [
{
required: true,
message: "请选择生效类型",
trigger: "change",
},
],
},
{
label: "套餐类型",
prop: "type",
@ -130,7 +152,7 @@ export default {
searchLabelWidth: 100,
search: true,
labelWidth: 130,
dicUrl: "/api/iot-system/dict/dictionary?code=dataPlanType",
dicUrl: "/api/iot-system/dict/dictionary?code=sourcedataPlanTypes",
props: {
label: "dictValue",
value: "dictKey",
@ -145,14 +167,14 @@ export default {
],
},
{
label: "生效类型",
prop: "activateType",
label: "流量类型",
prop: "flowType",
span: 12,
type: "select",
searchLabelWidth: 100,
search: true,
labelWidth: 130,
dicUrl: "/api/iot-system/dict/dictionary?code=activateType",
dicUrl: "/api/iot-system/dict/dictionary?code=DataPlanFlowType",
props: {
label: "dictValue",
value: "dictKey",
@ -161,7 +183,7 @@ export default {
rules: [
{
required: true,
message: "请选择生效类型",
message: "请选择流量类型",
trigger: "change",
},
],
@ -263,6 +285,7 @@ export default {
},
],
},
{
label: "套餐内容",
prop: "content",

49
src/views/package/packagegroup/index.vue

@ -61,12 +61,12 @@ export default {
columnBtn: false,
selection: false,
dialogClickModal: false,
dialogWidth: "60%",
dialogWidth: "40%",
column: [
{
label: "套餐组名称",
prop: "name",
span: 12,
span: 24,
labelWidth: 130,
searchLabelWidth: 100,
search: true,
@ -78,29 +78,28 @@ export default {
},
],
},
{
label: "套餐组类型",
prop: "type",
span: 12,
type: "select",
searchLabelWidth: 120,
search: true,
labelWidth: 130,
dicUrl:
"/api/iot-system/dict/dictionary?code=sourcedataPlanGroupType",
props: {
label: "dictValue",
value: "dictKey",
},
dataType: "number",
rules: [
{
required: true,
message: "请选择套餐组类型",
trigger: "change",
},
],
},
// {
// label: "",
// prop: "type",
// span: 12,
// type: "select",
// searchLabelWidth: 120,
// search: true,
// labelWidth: 130,
// dicUrl: "/api/iot-system/dict/dictionary?code=sourcedataPlanType",
// props: {
// label: "dictValue",
// value: "dictKey",
// },
// dataType: "number",
// rules: [
// {
// required: true,
// message: "",
// trigger: "change",
// },
// ],
// },
// {
// label: "",
// prop: "orderCount",

48
src/views/package/targetpackagegroupmanage/index.vue

@ -61,12 +61,12 @@ export default {
columnBtn: false,
selection: false,
dialogClickModal: false,
dialogWidth: "60%",
dialogWidth: "40%",
column: [
{
label: "目标套餐组名称",
prop: "name",
span: 12,
span: 24,
labelWidth: 130,
searchLabelWidth: 120,
search: true,
@ -78,28 +78,28 @@ export default {
},
],
},
{
label: "目标套餐组类型",
prop: "type",
span: 12,
type: "select",
searchLabelWidth: 120,
search: true,
labelWidth: 130,
dicUrl: "/api/iot-system/dict/dictionary?code=dataPlanGroupType",
props: {
label: "dictValue",
value: "dictKey",
},
dataType: "number",
rules: [
{
required: true,
message: "请选择目标套餐组类型",
trigger: "change",
},
],
},
// {
// label: "",
// prop: "type",
// span: 12,
// type: "select",
// searchLabelWidth: 120,
// search: true,
// labelWidth: 130,
// dicUrl: "/api/iot-system/dict/dictionary?code=dataPlanType",
// props: {
// label: "dictValue",
// value: "dictKey",
// },
// dataType: "number",
// rules: [
// {
// required: true,
// message: "",
// trigger: "change",
// },
// ],
// },
],
},
data: [],

22
src/views/package/targetpackagemanage/index.vue

@ -150,6 +150,28 @@ export default {
},
],
},
{
label: "流量类型",
prop: "flowType",
span: 12,
type: "select",
searchLabelWidth: 100,
search: true,
labelWidth: 130,
dicUrl: "/api/iot-system/dict/dictionary?code=DataPlanFlowType",
props: {
label: "dictValue",
value: "dictKey",
},
dataType: "number",
rules: [
{
required: true,
message: "请选择流量类型",
trigger: "change",
},
],
},
{
label: "生效类型",
prop: "activateType",

756
src/views/system/menu.vue

@ -1,31 +1,35 @@
<template>
<basic-container>
<avue-crud :option="option"
:table-loading="loading"
:data="data"
ref="crud"
v-model="form"
:permission="permissionList"
:before-open="beforeOpen"
:before-close="beforeClose"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
@tree-load="treeLoad">
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
ref="crud"
v-model="form"
:permission="permissionList"
:before-open="beforeOpen"
:before-close="beforeClose"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
@tree-load="treeLoad"
>
<template slot="menuLeft">
<el-button type="danger"
size="small"
icon="el-icon-delete"
v-if="permission.menu_delete"
plain
@click="handleDelete">
<el-button
type="danger"
size="small"
icon="el-icon-delete"
v-if="permission.menu_delete"
plain
@click="handleDelete"
>
</el-button>
</template>
<template slot-scope="scope" slot="menu">
@ -33,15 +37,16 @@
type="text"
icon="el-icon-circle-plus-outline"
size="small"
@click.stop="handleAdd(scope.row,scope.index)"
v-if="userInfo.role_name.includes('admin') && scope.row.category === 1"
>新增子项
@click.stop="handleAdd(scope.row, scope.index)"
v-if="
userInfo.role_name.includes('admin') && scope.row.category === 1
"
>新增子项
</el-button>
</template>
<template slot-scope="{row}"
slot="source">
<div style="text-align:center">
<i :class="row.source"/>
<template slot-scope="{ row }" slot="source">
<div style="text-align: center">
<i :class="row.source" />
</div>
</template>
</avue-crud>
@ -49,375 +54,384 @@
</template>
<script>
import {getLazyList, remove, update, add, getMenu} from "@/api/system/menu";
import {mapGetters} from "vuex";
import iconList from "@/config/iconList";
import func from "@/util/func";
import {getMenuTree} from "@/api/system/menu";
import { getLazyList, remove, update, add, getMenu } from "@/api/system/menu";
import { mapGetters } from "vuex";
import iconList from "@/config/iconList";
import func from "@/util/func";
import { getMenuTree } from "@/api/system/menu";
export default {
data() {
return {
form: {},
query: {},
loading: true,
selectionList: [],
parentId: 0,
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
option: {
lazy: true,
tip: false,
simplePage: true,
searchShow: true,
searchMenuSpan: 6,
dialogWidth: "60%",
tree: true,
border: true,
index: true,
selection: true,
viewBtn: true,
menuWidth: 300,
dialogClickModal: false,
column: [
{
label: "菜单名称",
prop: "name",
search: true,
rules: [
{
required: true,
message: "请输入菜单名称",
trigger: "blur"
}
]
},
{
label: "路由地址",
prop: "path",
rules: [
{
required: true,
message: "请输入路由地址",
trigger: "blur"
}
]
},
{
label: "上级菜单",
prop: "parentId",
type: "tree",
dicData: [],
hide: true,
addDisabled: false,
props: {
label: "title"
export default {
data() {
return {
form: {},
query: {},
loading: true,
selectionList: [],
parentId: 0,
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
option: {
lazy: true,
tip: false,
simplePage: true,
searchShow: true,
searchMenuSpan: 6,
dialogWidth: "60%",
tree: true,
border: true,
index: true,
selection: true,
viewBtn: true,
menuWidth: 300,
dialogClickModal: false,
column: [
{
label: "菜单名称",
prop: "name",
search: true,
rules: [
{
required: true,
message: "请输入菜单名称",
trigger: "blur",
},
rules: [
{
required: false,
message: "请选择上级菜单",
trigger: "click"
}
]
},
{
label: "菜单图标",
prop: "source",
type: "icon",
slot: true,
iconList: iconList,
rules: [
{
required: true,
message: "请输入菜单图标",
trigger: "click"
}
]
},
{
label: "菜单编号",
prop: "code",
search: true,
rules: [
{
required: true,
message: "请输入菜单编号",
trigger: "blur"
}
]
},
{
label: "菜单类型",
prop: "category",
type: "radio",
dicData: [
{
label: "菜单",
value: 1
},
{
label: "按钮",
value: 2
}
],
hide: true,
rules: [
{
required: true,
message: "请选择菜单类型",
trigger: "blur"
}
]
},
{
label: "菜单别名",
prop: "alias",
search: true,
rules: [
{
required: true,
message: "请输入菜单别名",
trigger: "blur"
}
]
},
{
label: "新窗口",
prop: "isOpen",
type: "radio",
disabled: false,
dicData: [
{
label: "否",
value: 1
},
{
label: "是",
value: 2
}
],
value: 1,
rules: [
{
required: true,
message: "请选择新窗口打开",
trigger: "blur"
}
]
},
{
label: "菜单排序",
prop: "sort",
type: "number",
row: true,
span: 24,
rules: [
{
required: true,
message: "请输入菜单排序",
trigger: "blur"
}
]
],
},
{
label: "路由地址",
prop: "path",
rules: [
{
required: true,
message: "请输入路由地址",
trigger: "blur",
},
],
},
{
label: "上级菜单",
prop: "parentId",
type: "tree",
dicData: [],
hide: true,
addDisabled: false,
props: {
label: "title",
},
{
label: "菜单备注",
prop: "remark",
type: "textarea",
span: 24,
minRows: 2,
hide: true
}
]
},
data: []
};
},
watch: {
'form.category'() {
const category = func.toInt(this.form.category);
this.$refs.crud.option.column.filter(item => {
if (item.prop === "path") {
item.rules[0].required = category === 1;
}
if (item.prop === 'isOpen') {
item.disabled = category === 2;
}
});
rules: [
{
required: false,
message: "请选择上级菜单",
trigger: "click",
},
],
},
{
label: "菜单图标",
prop: "source",
type: "icon",
slot: true,
iconList: iconList,
rules: [
{
required: true,
message: "请输入菜单图标",
trigger: "click",
},
],
},
{
label: "菜单编号",
prop: "code",
search: true,
rules: [
{
required: true,
message: "请输入菜单编号",
trigger: "blur",
},
],
},
{
label: "菜单类型",
prop: "category",
type: "radio",
dicData: [
{
label: "菜单",
value: 1,
},
{
label: "按钮",
value: 2,
},
],
hide: true,
rules: [
{
required: true,
message: "请选择菜单类型",
trigger: "blur",
},
],
},
{
label: "菜单别名",
prop: "alias",
search: true,
rules: [
{
required: true,
message: "请输入菜单别名",
trigger: "blur",
},
],
},
{
label: "新窗口",
prop: "isOpen",
type: "radio",
disabled: false,
dicData: [
{
label: "否",
value: 1,
},
{
label: "是",
value: 2,
},
],
value: 1,
rules: [
{
required: true,
message: "请选择新窗口打开",
trigger: "blur",
},
],
},
{
label: "菜单排序",
prop: "sort",
type: "number",
row: true,
span: 24,
rules: [
{
required: true,
message: "请输入菜单排序",
trigger: "blur",
},
],
},
{
label: "菜单备注",
prop: "remark",
type: "textarea",
span: 24,
minRows: 2,
hide: true,
},
],
},
data: [],
};
},
watch: {
"form.category"() {
const category = func.toInt(this.form.category);
this.$refs.crud.option.column.filter((item) => {
if (item.prop === "path") {
item.rules[0].required = category === 1;
}
if (item.prop === "isOpen") {
item.disabled = category === 2;
}
});
},
computed: {
...mapGetters(["userInfo", "permission"]),
permissionList() {
return {
addBtn: this.vaildData(this.permission.menu_add, false),
viewBtn: this.vaildData(this.permission.menu_view, false),
delBtn: this.vaildData(this.permission.menu_delete, false),
editBtn: this.vaildData(this.permission.menu_edit, false)
};
},
ids() {
let ids = [];
this.selectionList.forEach(ele => {
ids.push(ele.id);
});
return ids.join(",");
}
},
computed: {
...mapGetters(["userInfo", "permission"]),
permissionList() {
return {
addBtn: this.vaildData(this.permission.menu_add, false),
viewBtn: this.vaildData(this.permission.menu_view, false),
delBtn: this.vaildData(this.permission.menu_delete, false),
editBtn: this.vaildData(this.permission.menu_edit, false),
};
},
methods: {
initData() {
getMenuTree().then(res => {
const column = this.findObject(this.option.column, "parentId");
column.dicData = res.data.data;
});
},
handleAdd(row) {
this.parentId = row.id;
ids() {
let ids = [];
this.selectionList.forEach((ele) => {
ids.push(ele.id);
});
return ids.join(",");
},
},
methods: {
initData() {
getMenuTree().then((res) => {
const column = this.findObject(this.option.column, "parentId");
column.value = row.id;
column.addDisabled = true;
this.$refs.crud.rowAdd();
},
rowSave(row, done, loading) {
add(row).then((res) => {
column.dicData = res.data.data;
});
},
handleAdd(row) {
this.parentId = row.id;
const column = this.findObject(this.option.column, "parentId");
column.value = row.id;
column.addDisabled = true;
this.$refs.crud.rowAdd();
},
rowSave(row, done, loading) {
add(row).then(
(res) => {
//
const data = res.data.data;
row.id = data.id;
this.$message({
type: "success",
message: "操作成功!"
message: "操作成功!",
});
//
done(row);
}, error => {
},
(error) => {
window.console.log(error);
loading();
});
},
rowUpdate(row, index, done, loading) {
update(row).then(() => {
}
);
},
rowUpdate(row, index, done, loading) {
update(row).then(
() => {
this.$message({
type: "success",
message: "操作成功!"
message: "操作成功!",
});
//
done(row);
}, error => {
},
(error) => {
window.console.log(error);
loading();
});
},
rowDel(row, index, done) {
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
return remove(row.id);
})
.then(() => {
this.$message({
type: "success",
message: "操作成功!"
});
//
done(row);
});
},
handleDelete() {
if (this.selectionList.length === 0) {
this.$message.warning("请选择至少一条数据");
return;
}
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
);
},
rowDel(row, index, done) {
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
return remove(row.id);
})
.then(() => {
return remove(this.ids);
})
.then(() => {
//
this.data = [];
this.parentId = 0;
this.$refs.crud.refreshTable();
this.$refs.crud.toggleSelection();
//
this.onLoad(this.page);
this.$message({
type: "success",
message: "操作成功!"
});
.then(() => {
this.$message({
type: "success",
message: "操作成功!",
});
},
searchReset() {
this.query = {};
this.parentId = 0;
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.parentId = '';
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
selectionChange(list) {
this.selectionList = list;
},
selectionClear() {
this.selectionList = [];
this.$refs.crud.toggleSelection();
},
beforeOpen(done, type) {
if (["add", "edit"].includes(type)) {
this.initData();
}
if (["edit", "view"].includes(type)) {
getMenu(this.form.id).then(res => {
this.form = res.data.data;
//
done(row);
});
},
handleDelete() {
if (this.selectionList.length === 0) {
this.$message.warning("请选择至少一条数据");
return;
}
this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
return remove(this.ids);
})
.then(() => {
//
this.data = [];
this.parentId = 0;
this.$refs.crud.refreshTable();
this.$refs.crud.toggleSelection();
//
this.onLoad(this.page);
this.$message({
type: "success",
message: "操作成功!",
});
}
done();
},
beforeClose(done) {
this.parentId = "";
const column = this.findObject(this.option.column, "parentId");
column.value = "";
column.addDisabled = false;
done();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
refreshChange() {
this.onLoad(this.page, this.query);
},
onLoad(page, params = {}) {
this.loading = true;
getLazyList(this.parentId, Object.assign(params, this.query)).then(res => {
this.data = res.data.data;
this.loading = false;
this.selectionClear();
});
},
treeLoad(tree, treeNode, resolve) {
const parentId = tree.id;
getLazyList(parentId).then(res => {
resolve(res.data.data);
},
searchReset() {
this.query = {};
this.parentId = 0;
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.parentId = "";
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
selectionChange(list) {
this.selectionList = list;
},
selectionClear() {
this.selectionList = [];
this.$refs.crud.toggleSelection();
},
beforeOpen(done, type) {
if (["add", "edit"].includes(type)) {
this.initData();
}
if (["edit", "view"].includes(type)) {
getMenu(this.form.id).then((res) => {
this.form = res.data.data;
});
}
}
};
done();
},
beforeClose(done) {
this.parentId = "";
const column = this.findObject(this.option.column, "parentId");
column.value = "";
column.addDisabled = false;
done();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
refreshChange() {
this.onLoad(this.page, this.query);
},
onLoad(page, params = {}) {
this.loading = true;
getLazyList(this.parentId, Object.assign(params, this.query)).then(
(res) => {
this.data = res.data.data;
this.loading = false;
this.selectionClear();
}
);
},
treeLoad(tree, treeNode, resolve) {
const parentId = tree.id;
getLazyList(parentId).then((res) => {
resolve(res.data.data);
});
},
},
};
</script>
<style>
</style>
<style></style>

4
src/views/wel/component/Administrator.vue

@ -306,6 +306,10 @@ export default {
name: "济南天桥移动",
value: res.data.data.jiNanTianQiaoYiDong,
},
{
name: "东营移动",
value: res.data.data.dongYingYiDong,
},
];
this.cardTotal();
}

Loading…
Cancel
Save