单位服务,新增bigInt处理

This commit is contained in:
xielue 2023-03-02 10:48:06 +08:00
parent 3332ab7194
commit 4d83cf8f54
17 changed files with 2108 additions and 53 deletions

View File

@ -1,4 +1,4 @@
VUE_APP_API_BASE_URL=http://zxx4.f3322.net:46000
VUE_APP_USER_MODEL=AdminUser
VUE_APP_USER_MODEL2=BaseAdmin
VUE_APP_USER_MODEL2=AdminUser
VUE_APP_USER_MODEL=BaseAdmin

View File

@ -24,6 +24,7 @@
"enquire.js": "^2.1.6",
"highlight.js": "^10.2.1",
"js-cookie": "^2.2.1",
"json-bigint": "^1.0.0",
"mockjs": "^1.1.0",
"nprogress": "^0.2.0",
"viser-vue": "^2.4.8",

View File

@ -1,39 +1,49 @@
import { request } from '@/utils/request' // 加载request
import modal from './modal' // 加载modal
import JSONbig from 'json-bigint'
export default {
// 提交post请求 ,获取数据
post : function({url, data,loading , config}){ // post请求
post: function ({ url, data, loading, config, useBigInt }) { // post请求
return new Promise((resolve, reject)=>{ // 返回一个Promise
if (useBigInt) {
config = config || {};
config.headers = {
'Content-Type': 'application/json'
};
data = JSONbig.stringify(data);
}
return new Promise((resolve, reject) => { // 返回一个Promise
if(loading){ // 如果需要加载
if (loading) { // 如果需要加载
modal.loading(loading); // 显示加载
}
request(url, 'post', data, config).then(response=>{ // 发送请求
if(!response){ // 如果没有返回
request(url, 'post', data, config).then(response => { // 发送请求
if (!response) { // 如果没有返回
reject && reject(response); // 返回错误
return; // 返回
}
var result = response.data; // 获取数据
if(!result){ // 如果没有数据
if (!result) { // 如果没有数据
reject && reject(response); // 返回错误
return; // 返回
}
if(loading){ // 如果需要加载
if (loading) { // 如果需要加载
modal.hideLoading(); // 隐藏加载
}
if(result.code != 200){ // 如果返回的状态码不是200
if(reject){ // 如果有错误回调
if (result.code != 200) { // 如果返回的状态码不是200
if (reject) { // 如果有错误回调
reject(response); // 返回错误
}else{ // 如果没有错误回调
} else { // 如果没有错误回调
modal.error(result.msg); // 显示错误
}
return; // 返回
}
resolve(result); // 返回成功
}).catch((error)=>{ // 如果出错
if(loading){ // 如果需要加载
}).catch((error) => { // 如果出错
if (loading) { // 如果需要加载
modal.hideLoading(); // 隐藏加载
}
modal.error(error.toString()); // 显示错误
@ -44,44 +54,45 @@ export default {
// 获取分页数据
getPagedData: function({url, method = 'post', data,callback, config}){ // 获取分页数据 默认post请求
getPagedData: function ({ url, method = 'post', data, callback, config }) { // 获取分页数据 默认post请求
return new Promise((resolve, reject)=>{ // 返回一个Promise
return new Promise((resolve, reject) => { // 返回一个Promise
if(data.start_time && typeof(data.start_time) == "string"){ // 如果开始时间是字符串
data.start_time = parseInt(new Date(data.start_time).getTime()/1000); // 转换为时间戳
if (data.start_time && typeof (data.start_time) == "string") { // 如果开始时间是字符串
data.start_time = parseInt(new Date(data.start_time).getTime() / 1000); // 转换为时间戳
}
if(data.end_time && typeof(data.end_time) == "string"){ // 如果结束时间是字符串
data.end_time =parseInt(new Date(data.end_time).getTime()/1000); // 转换为时间戳
if (data.end_time && typeof (data.end_time) == "string") { // 如果结束时间是字符串
data.end_time = parseInt(new Date(data.end_time).getTime() / 1000); // 转换为时间戳
}
request(url, method, data, config).then(response=>{ // 发送请求
if(!response){ // 如果没有返回
request(url, method, data, config).then(response => { // 发送请求
if (!response) { // 如果没有返回
reject && reject(response); // 返回错误
return;
}
var result = response.data; // 获取数据
if(!result){ // 如果没有数据
if (!result) { // 如果没有数据
reject && reject(response); // 返回错误
return;
}
if(result.code != 200){ // 如果返回的状态码不是200
if(reject){ // 如果有错误回调
if (result.code != 200) { // 如果返回的状态码不是200
if (reject) { // 如果有错误回调
reject(response); // 返回错误
}else{ // 如果没有错误回调
} else { // 如果没有错误回调
modal.error(result.msg); // 显示错误
}
return;
}
console.log(result.data)
resolve(result.data); // 返回成功
if(callback){ // 如果有回调
if (callback) { // 如果有回调
callback(result.data); // 执行回调
}
}).catch((error)=>{
}).catch((error) => {
resolve({ // 返回一个空数据
total:0, // 总数
list :[] // 列表
total: 0, // 总数
list: [] // 列表
});
modal.error(error.toString()); // 显示错误
});

View File

@ -0,0 +1,320 @@
<template>
<page-layout :desc="desc">
<div class="page-body">
<vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"
:title-align="formOptions.titleAlign" :rules="formOptions.rules" :items="formOptions.items" titleColon>
<!-- =========================== 自定义区域 Start ======================= -->
<!-- =========================== 自定义区域 End ======================= -->
</vxe-form>
<div class="mk-toolbar" v-if="isEdit">
</div>
<div class="footerbar">
<a-button type="primary" @click="ok">确定</a-button>
<a-button @click="cancel">取消</a-button>
</div>
</div>
</page-layout>
</template>
<script>
import BASE_URL from '@/services/mes/api.js';
import PageLayout from '@/layouts/PageLayout'
export default {
name: 'MesUnitUpdate',
i18n: require('./i18n'),
components: { PageLayout },
props: {
pageMode: {
type: String,
default: "edit"
},
dataId: {
}
},
data() {
//
var pageData = {
//
currentConfigName: "",
// ID
currentBeid: 0,
uploadDefaultImg: null,
detailDataFieldName: "mes_unit",
actions: {
// =============================== Start ===============================
MesUnitList: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/list`, //
MesUnitDetail: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/detail`, //
MesUnitCreate: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/create`, //
MesUnitUpdate: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/update`, //
MesUnitDelete: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/detele`, //
MesUnitBatchDelete: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/batchDelete`, //
MesUnitBatchUpdate: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/batchUpdate`, //
MesUnitBatchCreate: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/batchCreate`, //
MesUnitExportExcel: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/export/excel`, // EXCEL
MesUnitImportExcel: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/import/excel`, // EXCEL
// =============================== End ===============================
},
keyName: 'id',
//
isEdit: false,
//
formOptions: {
data: {
// =============================== Start ===============================
id: 0,
code: "",
title: "",
name: "",
create_uid: 0,
update_uid: 0,
create_time: new Date(2100, 1, 1).getTime() / 10000,
update_time: new Date(2100, 1, 1).getTime() / 10000,
// =============================== End ===============================
},
//
titleWidth: 100,
//
titleAlign: 'right',
//
rules: {
// =============================== Start ===============================
code: [
{ required: true, message: '请输入编码' }
],
title: [
{ required: true, message: '请输入单位名称' }
],
name: [
{ required: true, message: '请输入单位英文名称' }
],
// =============================== End ===============================
},
//
items: [
// =============================== Start ===============================
{ field: 'code', title: '编码', span: 12, itemRender: { name: '$input' } },
{ field: 'title', title: '单位名称', span: 12, itemRender: { name: '$input' } },
{ field: 'name', title: '单位英文名称', span: 12, itemRender: { name: '$input' } },
// =============================== End ===============================
]
},
//
addModeItems: [
],
};
pageData.actions.get = pageData.actions.MesUnitDetail;
pageData.actions.create = pageData.actions.MesUnitCreate;
pageData.actions.update = pageData.actions.MesUnitUpdate;
//
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
return pageData;
},
computed: {
desc() {
return this.$t('editPageDesc')
}
},
created() {
// id
let dataId = this.getDataId();
// id
if (dataId) {
const json = `{"id":${dataId}}`;
this.$mk.post({
url: this.actions.get,
loading: "加载中...",
data: json,
config: {
headers: {
'Content-Type': 'application/json'
}
}
}).then(a => {
// =============================== Start ===============================
if (a.data[this.detailDataFieldName].create_time) {
a.data[this.detailDataFieldName].create_time = new Date(a.data[this.detailDataFieldName].create_time * 1000);
}
if (a.data[this.detailDataFieldName].update_time) {
a.data[this.detailDataFieldName].update_time = new Date(a.data[this.detailDataFieldName].update_time * 1000);
}
// =============================== End ===============================
this.formOptions.data = a.data[this.detailDataFieldName];
}).catch((a) => {
this.$mk.error(a.data.msg);
});
this.isEdit = true;
} else {
// id
this.addModeItems.forEach(item => {
this.formOptions.items.push(item);
})
}
},
//
methods: {
// id
getDataId() {
let dataId = this.dataId;
if (this.$route.params.id) {
dataId = this.$route.params.id;
}
if (!dataId) {
dataId = 0;
}
return dataId;
},
//
back() {
//
if (!this.isEdit) {
this.$closePage({
closeRoute: "/MesUnit/MesUnitAdd"
});
} else {
//
this.$closePage({
closeRoute: "/MesUnit/MesUnitUpdate"
});
}
//
this.$openPage('/MesUnit/MesUnitList')
},
//
ok() {
let save = () => {
//
let action = !this.isEdit ? this.actions.create : this.actions.update;
// id id
let postdata = Object.assign({}, this.formOptions.data);
console.log(postdata)
//
if (this.isEdit) {
// postdata = { MesUnit: postdata }
}
//
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
//
this.$mk.post({
url: action,
loading: "保存中...",
data: postdata,
useBigInt: true,
}).then(() => { //
this.$mk.success("保存成功");
if (!this.isEdit) { //
this.back();
}
}).catch((a) => { //
this.$mk.error(a.data.msg); //
});
};
//
this.$mk.validateForm({ form: this.$refs.xForm }).then(() => { //
save(); //
}).catch(count => { //
this.$mk.error(`存在${count}项错误,请检查`);
});
},
//
cancel() {
this.back();
}
},
//
watch: {
}
};
</script>
<style scoped lang="less">
.page-body {
padding: 30px;
background: @base-bg-color;
}
.formtabs .ant-tabs-tabpane {
/* background: white; */
padding: 12px;
}
.gridPanel {
height: calc(100vh - 600px);
}
.footerbar {
padding-left: 10px;
}
.imagePanel {
cursor: pointer;
padding: 10px;
width: 100px;
img {
width: 80px;
height: 80px;
}
}
</style>

View File

@ -0,0 +1,353 @@
<template>
<div class="page-body">
<a-row type="flex">
<a-col :flex="$mk.config.ui.searchFlex">
<!-- 搜索区 -->
<vxe-form :data="searchFormData" :items="searchFormItems" titleColon @submit="onSearch">
<template #date="{}">
<a-form-item label="创建时间" :style="{ display: 'inline-block', width: 120 }">
</a-form-item>
<a-form-item :style="{ display: 'inline-block', width: 'calc(100% - 120px )' }">
<a-range-picker @change="onDateChange" />
</a-form-item>
</template>
</vxe-form>
</a-col>
<a-col :flex="$mk.config.ui.toolbarFlex">
<!-- 工具条 -->
<mk-toolbar @toolbarClick="toolbarClick"></mk-toolbar>
</a-col>
</a-row>
<vxe-toolbar ref="xToolbar" custom>
<template #buttons>
<a-button type="primary" icon="delete" @click="pageDelete()">批量删除</a-button>
</template>
</vxe-toolbar>
<!-- 表格区 -->
<div class="gridPanel">
<vxe-grid ref='xGrid' v-bind="gridOptions">
<!-- =============================== 表格列 自动生成 Start =============================== -->
<!-- =============================== 表格列 自动生成 End =============================== -->
<template #op="{ row }">
<div class="oplinks">
<a @click.stop="pageEdit(row)" title="编辑"><a-icon type="edit" /></a>
<a @click.stop="pageDelete(row)" title="删除"><a-icon type="delete" /></a>
</div>
</template>
</vxe-grid>
</div>
</div>
</template>
<script>
import BASE_URL from '@/services/mes/api.js';
export default {
name: 'MesUnitList',
i18n: require('./i18n'), //
props: {
pageMode: {
type: String,
default: "edit"
}
},
data() {
const listFieldName = 'MesUnit';
//
var pageData = { //
keyName: 'id', //
//
actions: { // Api
// =============================== Start ===============================
MesUnitList: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/list`, //
MesUnitDetail: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/detail`, //
MesUnitCreate: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/create`, //
MesUnitUpdate: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/update`, //
MesUnitDelete: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/detele`, //
MesUnitBatchDelete: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/batchDelete`, //
MesUnitBatchUpdate: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/batchUpdate`, //
MesUnitBatchCreate: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/batchCreate`, //
MesUnitExportExcel: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/export/excel`, // EXCEL
MesUnitImportExcel: `${BASE_URL.BASE_URL}/MesUnit/v1/mes/unit/import/excel`, // EXCEL
// =============================== End ===============================
},
start_time: 0, //
end_time: 0, //
//
searchFormData: {
title: '',
desc: '',
},
//
searchRules: [
{ key: "title", mode: "like" },
{ key: "desc", mode: "like" }
],
//
searchFormItems: [ //
{ field: 'title', title: '标题', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入标题' } } },
{ field: 'desc', title: '描述', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入描述' } } },
{ span: 8, slots: { default: 'date' } }, //
{
align: 'right', span: 4, itemRender: { //
name: '$buttons', children: [{ props: { type: 'submit', content: '搜索', status: 'primary' } }, //
{ props: { type: 'reset', content: '重置' } }]
}
}
],
//
gridOptions: { //
height: '100%', // 100%
stripe: true, //
id: 'datagrid_1', //
//
proxyConfig: { //
sort: true, // query
filter: true, // query
props: {
result: listFieldName, //
total: 'total' //
},
// Promise
ajax: {
// queryreload
query: (options) => { // options
const { page, sorts } = options; //
var params = {}; //
params.page = page.currentPage; //
params.limit = page.pageSize; //
params.order_bys = []; //
params.search_rules = this.getSearchParms(); //
if (sorts) { //
sorts.forEach((v) => { //
params.order_bys.push({ //
column: v.property, //
order: v.order //
})
});
}
return this.loadData({ params }); //
}
}
},
//
columns: [
{ type: 'checkbox', width: 50 }, //
// =============================== Start ===============================
{ field: 'code', sortable: true, title: '编码', width: 250 }, //
{ field: 'title', sortable: true, title: '单位名称', width: 250 }, //
{ field: 'name', sortable: true, title: '单位英文名称', width: 250 }, //
{ field: 'create_uid', sortable: true, title: '创建人', width: 80 }, //
{ field: 'update_uid', sortable: true, title: '更新人', width: 80 }, //
{ field: 'create_time', formatter: 'formatDate', width: 160, sortable: true, title: '创建时间', showHeaderOverflow: true }, //
{ field: 'update_time', formatter: 'formatDate', width: 160, sortable: true, title: '更新时间', showHeaderOverflow: true }, //
// =============================== Start ===============================
{ title: '操作', slots: { default: 'op' }, width: 120 }
]
}
};
pageData.actions.getList = pageData.actions.MesUnitList;
pageData.actions.delete = pageData.actions.MesUnitBatchDelete;
pageData.gridOptions = Object.assign({}, this.$mk.config.defaults.gridOptions, pageData.gridOptions); //
return pageData; //
},
//
computed: {
//
desc() {
return this.$t('pageDesc')
}
},
//
created() {
this.$nextTick(() => { // DOM
//
this.$refs.xGrid.connect(this.$refs.xToolbar) //
});
},
//
onLoad() {
},
//
methods: {
// =============================== status Start ===============================
// =============================== status End ===============================
//
onDateChange(date) { //
if (date && date.length) { //
this.start_time = parseInt(date[0]._d.getTime() / 1000); //
this.end_time = parseInt(date[1]._d.getTime() / 1000); //
} else { //
this.start_time = 0; //
this.end_time = 0; //
}
},
//
getSearchParms() { //
var rules = []; //
let findMode = k => { //
for (let i in this.searchRules) { //
if (this.searchRules[i].key == k) return this.searchRules[i].mode; //
}
return "equal"; //
};
for (let key in this.searchFormData) { //
let value = this.searchFormData[key]; //
if (value) { //
let mode = findMode(key); //
if (mode == "like") { //
value = "%" + value + "%"; // %
}
rules.push({ //
column: key, //
mode: mode, //
value: value //
});
}
}
return rules; //
},
//
getSelectdRow() { //
let row = this.$refs.xGrid.getCurrentRecord(); //
if (!row) { //
let rows = this.$refs.xGrid.getCheckboxRecords(); //
if (rows && rows.length) { row = rows[0]; } //
}
return row; //
},
//
loadData({ params }) {
params.start_time = this.start_time; //
params.end_time = this.end_time; //
return this.$mk.getPagedData({ url: this.actions.getList, data: params }); //
},
// add / log / setting
toolbarClick(e) {
if (e.name == "add") { //
this.$openPage("/MesUnit/MesUnitAdd"); //
}
},
//
pageEdit(row) {
if (!row) { //
this.$mk.msg("请选择行"); //
return; //
}
this.$openPage("/MesUnit/MesUnitUpdate/" + row[this.keyName]); //
},
//
pageDelete(row) {
let rows = row ? [row] : this.$refs.xGrid.getCheckboxRecords(); //
let ids = []; // id
rows.forEach((row) => { //
ids.push(row[this.keyName]); // idid
});
if (!ids.length) { //
this.$mk.error("请选择行"); //
return;
}
this.$mk.confirm('您确定要删除吗?').then(type => { //
if (type == 'confirm') { //
this.$mk.post({
url: this.actions.delete, //
loading: "删除中...", //
data: {
ids: ids // id
},
useBigInt : true
}).then(() => { //
this.$mk.success("删除成功"); //
this.onSearch(); //
}).catch((a) => { //
this.$mk.error(a.data.msg); //
});
}
});
},
//
onSearch() {
this.$refs.xGrid.commitProxy('query') //
},
},
//
watch: {
}
};
</script>
<style scoped lang="less">
.page-body {
padding: 30px;
background: @base-bg-color;
}
.gridPanel {
height: calc(100vh - 400px);
}
</style>
<style>
.oplinks svg {
width: 22px;
height: 22px;
margin: 0 5px 0 0;
}
</style>

View File

@ -0,0 +1,14 @@
module.exports = {
messages: {
CN: {
pageDesc:'单位管理'
},
HK: {
pageDesc:'单位管理'
},
US: {
pageDesc:'单位管理'
}
}
}

View File

@ -0,0 +1,321 @@
<template>
<page-layout :desc="desc">
<div class="page-body">
<vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"
:title-align="formOptions.titleAlign" :rules="formOptions.rules" :items="formOptions.items" titleColon>
<!-- =========================== 自定义区域 Start ======================= -->
<!-- =========================== 自定义区域 End ======================= -->
</vxe-form>
<div class="mk-toolbar" v-if="isEdit">
</div>
<div class="footerbar">
<a-button type="primary" @click="ok">确定</a-button>
<a-button @click="cancel">取消</a-button>
</div>
</div>
</page-layout>
</template>
<script>
import BASE_URL from '@/services/mes/MesUnit/MesUnit.api.js';
import PageLayout from '@/layouts/PageLayout'
export default {
name: 'MesUnitLogUpdate',
i18n: require('./i18n'),
components: { PageLayout },
props: {
pageMode: {
type: String,
default: "edit"
},
dataId: {
}
},
data() {
//
var pageData = {
//
currentConfigName: "",
// ID
currentBeid: 0,
uploadDefaultImg: null,
actions: {
// =============================== Start ===============================
LogList: `${BASE_URL.BASE_URL}/MesUnit/v1/log/list`, //
LogDetail: `${BASE_URL.BASE_URL}/MesUnit/v1/log/detail`, //
// =============================== End ===============================
},
keyName: 'id',
//
isEdit: false,
//
formOptions: {
data: {
// =============================== Start ===============================
company_id: 0,
store_id: 0,
uid: 0,
target_uid: 0,
service: "",
module: "",
type: "",
content: "",
create_time: new Date(2100, 1, 1).getTime() / 10000,
update_time: new Date(2100, 1, 1).getTime() / 10000,
// =============================== End ===============================
},
//
titleWidth: 100,
//
titleAlign: 'right',
//
rules: {
// =============================== Start ===============================
company_id: [
{ required: true, message: '请输入公司ID' }
],
store_id: [
{ required: true, message: '请输入门店ID' }
],
uid: [
{ required: true, message: '请输入用户ID' }
],
target_uid: [
{ required: true, message: '请输入目标用户ID' }
],
service: [
{ required: true, message: '请输入服务名称' }
],
module: [
{ required: true, message: '请输入模块名称' }
],
type: [
{ required: true, message: '请输入日志类型' }
],
content: [
{ required: true, message: '请输入日志内容' }
],
// =============================== End ===============================
},
//
items: [
// =============================== Start ===============================
{ field: 'company_id', title: '公司ID', span: 12, itemRender: { name: '$input' } },
{ field: 'store_id', title: '门店ID', span: 12, itemRender: { name: '$input' } },
{ field: 'uid', title: '用户ID', span: 12, itemRender: { name: '$input' } },
{ field: 'target_uid', title: '目标用户ID', span: 12, itemRender: { name: '$input' } },
{ field: 'service', title: '服务名称', span: 12, itemRender: { name: '$input' } },
{ field: 'module', title: '模块名称', span: 12, itemRender: { name: '$input' } },
{ field: 'type', title: '日志类型', span: 12, itemRender: { name: '$input' } },
{ field: 'content', title: '日志内容', span: 12, itemRender: { name: '$input' } },
// =============================== End ===============================
]
},
//
addModeItems: [
],
};
//
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
return pageData;
},
computed: {
desc() {
return this.$t('editPageDesc')
}
},
created() {
// id
let dataId = this.getDataId();
// id
if (dataId) {
this.$mk.post({
url: this.actions.get,
loading: "加载中...",
data: {
id: parseInt(dataId)
}
}).then(a => {
// =============================== Start ===============================
if(a.data.MesUnitLog.create_time){
a.data.MesUnitLog.create_time = new Date(a.data.MesUnitLog.create_time * 1000);
}
if(a.data.MesUnitLog.update_time){
a.data.MesUnitLog.update_time = new Date(a.data.MesUnitLog.update_time * 1000);
}
// =============================== End ===============================
this.formOptions.data = a.data.MesUnitLog;
}).catch((a) => {
this.$mk.error(a.data.msg);
});
this.isEdit = true;
} else {
// id
this.addModeItems.forEach(item => {
this.formOptions.items.push(item);
})
}
},
//
methods: {
// id
getDataId() {
let dataId = this.dataId;
if (this.$route.params.id) {
dataId = this.$route.params.id;
}
return parseInt(dataId || 0);
},
//
back() {
//
if (!this.isEdit) {
this.$closePage({
closeRoute: "/MesUnit/MesUnitLogAdd"
});
} else {
//
this.$closePage({
closeRoute: "/MesUnit/MesUnitLogUpdate"
});
}
//
this.$openPage('/MesUnit/MesUnitLogList')
},
//
ok() {
let save = () => {
//
let action = !this.isEdit ? this.actions.create : this.actions.update;
// id id
let postdata = !this.isEdit ? Object.assign({ id: this.dataId }, this.formOptions.data) : Object.assign({}, this.formOptions.data);
//
if (this.isEdit) {
// postdata = { MesUnitLog: postdata }
}
//
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
//
this.$mk.post({
url: action,
loading: "保存中...",
data: postdata,
}).then(() => { //
this.$mk.success("保存成功");
if (!this.isEdit) { //
this.back();
}
}).catch((a) => { //
this.$mk.error(a.data.msg); //
});
};
//
this.$mk.validateForm({ form: this.$refs.xForm }).then(() => { //
save(); //
}).catch(count => { //
this.$mk.error(`存在${count}项错误,请检查`);
});
},
//
cancel() {
this.back();
}
},
//
watch: {
}
};
</script>
<style scoped lang="less">
.page-body {
padding: 30px;
background: @base-bg-color;
}
.formtabs .ant-tabs-tabpane {
/* background: white; */
padding: 12px;
}
.gridPanel {
height: calc(100vh - 600px);
}
.footerbar {
padding-left: 10px;
}
.imagePanel {
cursor: pointer;
padding: 10px;
width: 100px;
img {
width: 80px;
height: 80px;
}
}
</style>

View File

@ -0,0 +1,338 @@
<template>
<div class="page-body">
<a-row type="flex">
<a-col :flex="$mk.config.ui.searchFlex">
<!-- 搜索区 -->
<vxe-form :data="searchFormData" :items="searchFormItems" titleColon @submit="onSearch">
<template #date="{}">
<a-form-item label="创建时间" :style="{ display: 'inline-block', width: 120 }">
</a-form-item>
<a-form-item :style="{ display: 'inline-block', width: 'calc(100% - 120px )' }">
<a-range-picker @change="onDateChange" />
</a-form-item>
</template>
</vxe-form>
</a-col>
<a-col :flex="$mk.config.ui.toolbarFlex">
<!-- 工具条 -->
<mk-toolbar @toolbarClick="toolbarClick"></mk-toolbar>
</a-col>
</a-row>
<vxe-toolbar ref="xToolbar" custom>
<template #buttons>
<a-button type="primary" icon="delete" @click="pageDelete()">批量删除</a-button>
</template>
</vxe-toolbar>
<!-- 表格区 -->
<div class="gridPanel">
<vxe-grid ref='xGrid' v-bind="gridOptions">
<!-- =============================== 表格列 自动生成 Start =============================== -->
<!-- =============================== 表格列 自动生成 End =============================== -->
<template #op="{ row }">
<div class="oplinks">
<a @click.stop="pageEdit(row)" title="编辑"><a-icon type="edit" /></a>
<a @click.stop="pageDelete(row)" title="删除"><a-icon type="delete" /></a>
</div>
</template>
</vxe-grid>
</div>
</div>
</template>
<script>
import BASE_URL from '@/services/mes/MesUnit/MesUnit.api.js';
export default {
name: 'MesUnitLogList',
i18n: require('./i18n'), //
props: {
pageMode: {
type: String,
default: "edit"
}
},
data() {
//
var pageData = { //
keyName: 'id', //
//
actions: { // Api
// =============================== Start ===============================
LogList: `${BASE_URL.BASE_URL}/MesUnit/v1/log/list`, //
LogDetail: `${BASE_URL.BASE_URL}/MesUnit/v1/log/detail`, //
// =============================== End ===============================
},
start_time: 0, //
end_time: 0, //
//
searchFormData: {
title: '',
desc: '',
},
//
searchRules: [
{ key: "title", mode: "like" },
{ key: "desc", mode: "like" }
],
//
searchFormItems: [ //
{ field: 'title', title: '标题', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入标题' } } },
{ field: 'desc', title: '描述', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入描述' } } },
{ span: 8, slots: { default: 'date' } }, //
{
align: 'right', span: 4, itemRender: { //
name: '$buttons', children: [{ props: { type: 'submit', content: '搜索', status: 'primary' } }, //
{ props: { type: 'reset', content: '重置' } }]
}
}
],
//
gridOptions: { //
height: '100%', // 100%
stripe: true, //
id: 'datagrid_1', //
//
proxyConfig: { //
sort: true, // query
filter: true, // query
props: {
result: 'list', //
total: 'total' //
},
// Promise
ajax: {
// queryreload
query: (options) => { // options
const { page, sorts } = options; //
var params = {}; //
params.page = page.currentPage; //
params.limit = page.pageSize; //
params.order_bys = []; //
params.search_rules = this.getSearchParms(); //
if (sorts) { //
sorts.forEach((v) => { //
params.order_bys.push({ //
column: v.property, //
order: v.order //
})
});
}
return this.loadData({ params }); //
}
}
},
//
columns: [
{ type: 'checkbox', width: 50 }, //
{ type: 'seq', width: 30 }, //
// =============================== Start ===============================
{ field: 'company_id', sortable: true, title: '公司ID', width: 250 }, // ID
{ field: 'store_id', sortable: true, title: '门店ID', width: 250 }, // ID
{ field: 'uid', sortable: true, title: '用户ID', width: 250 }, // ID
{ field: 'target_uid', sortable: true, title: '目标用户ID', width: 250 }, // ID
{ field: 'service', sortable: true, title: '服务名称', width: 250 }, //
{ field: 'module', sortable: true, title: '模块名称', width: 250 }, //
{ field: 'type', sortable: true, title: '日志类型', width: 250 }, //
{ field: 'content', sortable: true, title: '日志内容', width: 250 }, //
{ field: 'create_time', formatter: 'formatDate', width: 160, sortable: true, title: '创建时间', showHeaderOverflow: true }, //
{ field: 'update_time', formatter: 'formatDate', width: 160, sortable: true, title: '更新时间', showHeaderOverflow: true }, //
// =============================== Start ===============================
{ title: '操作', slots: { default: 'op' }, width: 120 }
]
}
};
pageData.gridOptions = Object.assign({}, this.$mk.config.defaults.gridOptions, pageData.gridOptions); //
return pageData; //
},
//
computed: {
//
desc() {
return this.$t('pageDesc')
}
},
//
created() {
this.$nextTick(() => { // DOM
//
this.$refs.xGrid.connect(this.$refs.xToolbar) //
});
},
//
onLoad() {
},
//
methods: {
// =============================== status Start ===============================
// =============================== status End ===============================
//
onDateChange(date) { //
if (date && date.length) { //
this.start_time = parseInt(date[0]._d.getTime() / 1000); //
this.end_time = parseInt(date[1]._d.getTime() / 1000); //
} else { //
this.start_time = 0; //
this.end_time = 0; //
}
},
//
getSearchParms() { //
var rules = []; //
let findMode = k => { //
for (let i in this.searchRules) { //
if (this.searchRules[i].key == k) return this.searchRules[i].mode; //
}
return "equal"; //
};
for (let key in this.searchFormData) { //
let value = this.searchFormData[key]; //
if (value) { //
let mode = findMode(key); //
if (mode == "like") { //
value = "%" + value + "%"; // %
}
rules.push({ //
column: key, //
mode: mode, //
value: value //
});
}
}
return rules; //
},
//
getSelectdRow() { //
let row = this.$refs.xGrid.getCurrentRecord(); //
if (!row) { //
let rows = this.$refs.xGrid.getCheckboxRecords(); //
if (rows && rows.length) { row = rows[0]; } //
}
return row; //
},
//
loadData({ params }) {
params.start_time = this.start_time; //
params.end_time = this.end_time; //
return this.$mk.getPagedData({ url: this.actions.getList, data: params }); //
},
// add / log / setting
toolbarClick(e) {
if (e.name == "add") { //
this.$openPage("/MesUnit/MesUnitLogAdd"); //
}
},
//
pageEdit(row) {
if (!row) { //
this.$mk.msg("请选择行"); //
return; //
}
this.$openPage("/MesUnit/MesUnitLogUpdate/" + row[this.keyName]); //
},
//
pageDelete(row) {
let rows = row ? [row] : this.$refs.xGrid.getCheckboxRecords(); //
let ids = []; // id
rows.forEach((row) => { //
ids.push(row[this.keyName]); // idid
});
if (!ids.length) { //
this.$mk.error("请选择行"); //
return;
}
this.$mk.confirm('您确定要删除吗?').then(type => { //
if (type == 'confirm') { //
this.$mk.post({
url: this.actions.delete, //
loading: "删除中...", //
data: {
ids: ids // id
}
}).then(() => { //
this.$mk.success("删除成功"); //
this.onSearch(); //
}).catch((a) => { //
this.$mk.error(a.data.msg); //
});
}
});
},
//
onSearch() {
this.$refs.xGrid.commitProxy('query') //
},
},
//
watch: {
}
};
</script>
<style scoped lang="less">
.page-body {
padding: 30px;
background: @base-bg-color;
}
.gridPanel {
height: calc(100vh - 400px);
}
</style>
<style>
.oplinks svg {
width: 22px;
height: 22px;
margin: 0 5px 0 0;
}
</style>

View File

@ -0,0 +1,273 @@
<template>
<page-layout :desc="desc">
<div class="page-body">
<vxe-form :data="formOptions.data" ref="xForm" :title-width="formOptions.titleWidth"
:title-align="formOptions.titleAlign" :rules="formOptions.rules" :items="formOptions.items" titleColon>
<!-- =========================== 自定义区域 Start ======================= -->
<!-- =========================== 自定义区域 End ======================= -->
</vxe-form>
<div class="mk-toolbar" v-if="isEdit">
</div>
<div class="footerbar">
<a-button type="primary" @click="ok">确定</a-button>
<a-button @click="cancel">取消</a-button>
</div>
</div>
</page-layout>
</template>
<script>
import BASE_URL from '@/services/mes/MesUnit/MesUnit.api.js';
import PageLayout from '@/layouts/PageLayout'
export default {
name: 'MesUnitSettingsUpdate',
i18n: require('./i18n'),
components: { PageLayout },
props: {
pageMode: {
type: String,
default: "edit"
},
dataId: {
}
},
data() {
//
var pageData = {
//
currentConfigName: "",
// ID
currentBeid: 0,
uploadDefaultImg: null,
actions: {
// =============================== Start ===============================
Settings: `${BASE_URL.BASE_URL}/MesUnit/v1/settings/list`, //
SettingsUpdate: `${BASE_URL.BASE_URL}/MesUnit/v1/settings/update`, //
// =============================== End ===============================
},
keyName: 'id',
//
isEdit: false,
//
formOptions: {
data: {
// =============================== Start ===============================
// =============================== End ===============================
},
//
titleWidth: 100,
//
titleAlign: 'right',
//
rules: {
// =============================== Start ===============================
// =============================== End ===============================
},
//
items: [
// =============================== Start ===============================
// =============================== End ===============================
]
},
//
addModeItems: [
],
};
//
pageData.formOptions = Object.assign({}, this.$mk.config.defaults.formOptions, pageData.formOptions);
return pageData;
},
computed: {
desc() {
return this.$t('editPageDesc')
}
},
created() {
// id
let dataId = this.getDataId();
// id
if (dataId) {
this.$mk.post({
url: this.actions.get,
loading: "加载中...",
data: {
id: parseInt(dataId)
}
}).then(a => {
// =============================== Start ===============================
// =============================== End ===============================
this.formOptions.data = a.data.MesUnitSettings;
}).catch((a) => {
this.$mk.error(a.data.msg);
});
this.isEdit = true;
} else {
// id
this.addModeItems.forEach(item => {
this.formOptions.items.push(item);
})
}
},
//
methods: {
// id
getDataId() {
let dataId = this.dataId;
if (this.$route.params.id) {
dataId = this.$route.params.id;
}
return parseInt(dataId || 0);
},
//
back() {
//
if (!this.isEdit) {
this.$closePage({
closeRoute: "/MesUnit/MesUnitSettingsAdd"
});
} else {
//
this.$closePage({
closeRoute: "/MesUnit/MesUnitSettingsUpdate"
});
}
//
this.$openPage('/MesUnit/MesUnitSettingsList')
},
//
ok() {
let save = () => {
//
let action = !this.isEdit ? this.actions.create : this.actions.update;
// id id
let postdata = !this.isEdit ? Object.assign({ id: this.dataId }, this.formOptions.data) : Object.assign({}, this.formOptions.data);
//
if (this.isEdit) {
// postdata = { MesUnitSettings: postdata }
}
//
this.$mk.formatFormData({ data: postdata, rules: this.formOptions.items });
//
this.$mk.post({
url: action,
loading: "保存中...",
data: postdata,
}).then(() => { //
this.$mk.success("保存成功");
if (!this.isEdit) { //
this.back();
}
}).catch((a) => { //
this.$mk.error(a.data.msg); //
});
};
//
this.$mk.validateForm({ form: this.$refs.xForm }).then(() => { //
save(); //
}).catch(count => { //
this.$mk.error(`存在${count}项错误,请检查`);
});
},
//
cancel() {
this.back();
}
},
//
watch: {
}
};
</script>
<style scoped lang="less">
.page-body {
padding: 30px;
background: @base-bg-color;
}
.formtabs .ant-tabs-tabpane {
/* background: white; */
padding: 12px;
}
.gridPanel {
height: calc(100vh - 600px);
}
.footerbar {
padding-left: 10px;
}
.imagePanel {
cursor: pointer;
padding: 10px;
width: 100px;
img {
width: 80px;
height: 80px;
}
}
</style>

View File

@ -0,0 +1,328 @@
<template>
<div class="page-body">
<a-row type="flex">
<a-col :flex="$mk.config.ui.searchFlex">
<!-- 搜索区 -->
<vxe-form :data="searchFormData" :items="searchFormItems" titleColon @submit="onSearch">
<template #date="{}">
<a-form-item label="创建时间" :style="{ display: 'inline-block', width: 120 }">
</a-form-item>
<a-form-item :style="{ display: 'inline-block', width: 'calc(100% - 120px )' }">
<a-range-picker @change="onDateChange" />
</a-form-item>
</template>
</vxe-form>
</a-col>
<a-col :flex="$mk.config.ui.toolbarFlex">
<!-- 工具条 -->
<mk-toolbar @toolbarClick="toolbarClick"></mk-toolbar>
</a-col>
</a-row>
<vxe-toolbar ref="xToolbar" custom>
<template #buttons>
<a-button type="primary" icon="delete" @click="pageDelete()">批量删除</a-button>
</template>
</vxe-toolbar>
<!-- 表格区 -->
<div class="gridPanel">
<vxe-grid ref='xGrid' v-bind="gridOptions">
<!-- =============================== 表格列 自动生成 Start =============================== -->
<!-- =============================== 表格列 自动生成 End =============================== -->
<template #op="{ row }">
<div class="oplinks">
<a @click.stop="pageEdit(row)" title="编辑"><a-icon type="edit" /></a>
<a @click.stop="pageDelete(row)" title="删除"><a-icon type="delete" /></a>
</div>
</template>
</vxe-grid>
</div>
</div>
</template>
<script>
import BASE_URL from '@/services/mes/MesUnit/MesUnit.api.js';
export default {
name: 'MesUnitSettingsList',
i18n: require('./i18n'), //
props: {
pageMode: {
type: String,
default: "edit"
}
},
data() {
//
var pageData = { //
keyName: 'id', //
//
actions: { // Api
// =============================== Start ===============================
Settings: `${BASE_URL.BASE_URL}/MesUnit/v1/settings/list`, //
SettingsUpdate: `${BASE_URL.BASE_URL}/MesUnit/v1/settings/update`, //
// =============================== End ===============================
},
start_time: 0, //
end_time: 0, //
//
searchFormData: {
title: '',
desc: '',
},
//
searchRules: [
{ key: "title", mode: "like" },
{ key: "desc", mode: "like" }
],
//
searchFormItems: [ //
{ field: 'title', title: '标题', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入标题' } } },
{ field: 'desc', title: '描述', span: 5, itemRender: { name: '$input', props: { placeholder: '请输入描述' } } },
{ span: 8, slots: { default: 'date' } }, //
{
align: 'right', span: 4, itemRender: { //
name: '$buttons', children: [{ props: { type: 'submit', content: '搜索', status: 'primary' } }, //
{ props: { type: 'reset', content: '重置' } }]
}
}
],
//
gridOptions: { //
height: '100%', // 100%
stripe: true, //
id: 'datagrid_1', //
//
proxyConfig: { //
sort: true, // query
filter: true, // query
props: {
result: 'list', //
total: 'total' //
},
// Promise
ajax: {
// queryreload
query: (options) => { // options
const { page, sorts } = options; //
var params = {}; //
params.page = page.currentPage; //
params.limit = page.pageSize; //
params.order_bys = []; //
params.search_rules = this.getSearchParms(); //
if (sorts) { //
sorts.forEach((v) => { //
params.order_bys.push({ //
column: v.property, //
order: v.order //
})
});
}
return this.loadData({ params }); //
}
}
},
//
columns: [
{ type: 'checkbox', width: 50 }, //
{ type: 'seq', width: 30 }, //
// =============================== Start ===============================
// =============================== Start ===============================
{ title: '操作', slots: { default: 'op' }, width: 120 }
]
}
};
pageData.gridOptions = Object.assign({}, this.$mk.config.defaults.gridOptions, pageData.gridOptions); //
return pageData; //
},
//
computed: {
//
desc() {
return this.$t('pageDesc')
}
},
//
created() {
this.$nextTick(() => { // DOM
//
this.$refs.xGrid.connect(this.$refs.xToolbar) //
});
},
//
onLoad() {
},
//
methods: {
// =============================== status Start ===============================
// =============================== status End ===============================
//
onDateChange(date) { //
if (date && date.length) { //
this.start_time = parseInt(date[0]._d.getTime() / 1000); //
this.end_time = parseInt(date[1]._d.getTime() / 1000); //
} else { //
this.start_time = 0; //
this.end_time = 0; //
}
},
//
getSearchParms() { //
var rules = []; //
let findMode = k => { //
for (let i in this.searchRules) { //
if (this.searchRules[i].key == k) return this.searchRules[i].mode; //
}
return "equal"; //
};
for (let key in this.searchFormData) { //
let value = this.searchFormData[key]; //
if (value) { //
let mode = findMode(key); //
if (mode == "like") { //
value = "%" + value + "%"; // %
}
rules.push({ //
column: key, //
mode: mode, //
value: value //
});
}
}
return rules; //
},
//
getSelectdRow() { //
let row = this.$refs.xGrid.getCurrentRecord(); //
if (!row) { //
let rows = this.$refs.xGrid.getCheckboxRecords(); //
if (rows && rows.length) { row = rows[0]; } //
}
return row; //
},
//
loadData({ params }) {
params.start_time = this.start_time; //
params.end_time = this.end_time; //
return this.$mk.getPagedData({ url: this.actions.getList, data: params }); //
},
// add / log / setting
toolbarClick(e) {
if (e.name == "add") { //
this.$openPage("/MesUnit/MesUnitSettingsAdd"); //
}
},
//
pageEdit(row) {
if (!row) { //
this.$mk.msg("请选择行"); //
return; //
}
this.$openPage("/MesUnit/MesUnitSettingsUpdate/" + row[this.keyName]); //
},
//
pageDelete(row) {
let rows = row ? [row] : this.$refs.xGrid.getCheckboxRecords(); //
let ids = []; // id
rows.forEach((row) => { //
ids.push(row[this.keyName]); // idid
});
if (!ids.length) { //
this.$mk.error("请选择行"); //
return;
}
this.$mk.confirm('您确定要删除吗?').then(type => { //
if (type == 'confirm') { //
this.$mk.post({
url: this.actions.delete, //
loading: "删除中...", //
data: {
ids: ids // id
}
}).then(() => { //
this.$mk.success("删除成功"); //
this.onSearch(); //
}).catch((a) => { //
this.$mk.error(a.data.msg); //
});
}
});
},
//
onSearch() {
this.$refs.xGrid.commitProxy('query') //
},
},
//
watch: {
}
};
</script>
<style scoped lang="less">
.page-body {
padding: 30px;
background: @base-bg-color;
}
.gridPanel {
height: calc(100vh - 400px);
}
</style>
<style>
.oplinks svg {
width: 22px;
height: 22px;
margin: 0 5px 0 0;
}
</style>

View File

@ -0,0 +1,66 @@
// 视图组件
const view = {
tabs: () => import('@/layouts/tabs'),
blank: () => import('@/layouts/BlankView'),
page: () => import('@/layouts/PageView')
}
// 路由组件注册
const MesUnitRouterMap = {
MesUnit:{
name: '单位管理',
icon: 'idcard',
component: view.page,
meta: {
},
authority: {
permission:[],
}
},
MesUnitList:{
name: '单位管理',
icon: 'idcard',
path: '/MesUnit/MesUnitList',
component: () => import('@/pages/Middle/Mes/MesUnit/MesUnit/List'),
authority: {
permission:[],
}
},
MesUnitCreate:{
name: '单位管理',
icon: 'idcard',
path: '/MesUnit/MesUnitAdd',
component: () => import('@/pages/Middle/Mes/MesUnit/MesUnit/Edit'),
meta: {
invisible:true,
},
authority: {
permission:[],
}
},
MesUnitUpdate:{
name: '单位管理',
icon: 'idcard',
path: '/MesUnit/MesUnitUpdate/:id',
component: () => import('@/pages/Middle/Mes/MesUnit/MesUnit/Edit'),
meta: {
invisible:true,
},
authority: {
permission:[],
}
},
MesUnitDetail:{
meta: {
invisible:true,
},
}
}
export default MesUnitRouterMap

View File

@ -10,6 +10,8 @@ import BaseCompanyRouterMap from '@/router/Middle/Base/BaseCompany/router.map.js
import BasePermissionRouterMap from '@/router/Middle/Base/BasePermission/router.map.js'
import BaseAdminRouterMap from '@/router/Middle/Base/BaseAdmin/router.map.js'
import MesUnitRouterMap from '@/router/Middle/Mes/MesUnit/router.map.js'
// 合并BaseRouterMap ConfigRouterMap ServiceRouterMap
const routerMap = Object.assign({},
@ -21,6 +23,9 @@ const routerMap = Object.assign({},
BaseCompanyRouterMap,
BasePermissionRouterMap,
BaseAdminRouterMap,
MesUnitRouterMap
)
export default routerMap

5
src/services/mes/api.js Normal file
View File

@ -0,0 +1,5 @@
const BASE_URL = process.env.VUE_APP_API_BASE_URL // 获取环境变量VUE_APP_API_BASE_URL
module.exports = {
BASE_URL
}

View File

@ -1,6 +1,6 @@
import axios from 'axios'
import Cookie from 'js-cookie'
import JSONbig from 'json-bigint'
const USER_MODEL = process.env.VUE_APP_USER_MODEL
const APP_BEID = process.env.VUE_APP_BEID
@ -14,6 +14,14 @@ axios.defaults.xsrfHeaderName= xsrfHeaderName // 设置认证信息的名称
axios.defaults.xsrfCookieName= xsrfHeaderName // 设置认证信息的名称
axios.defaults.transformResponse = [function (data) {
if (data && typeof(data) == "string") {
return JSONbig.parse(data)
}
return data
}]
// 认证类型
const AUTH_TYPE = {
BEARER: 'Bearer', // Bearer 认证

View File

@ -2259,6 +2259,11 @@
"resolved" "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz"
"version" "5.2.2"
"bignumber.js@^9.0.0":
"integrity" "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig=="
"resolved" "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.1.1.tgz"
"version" "9.1.1"
"binary-extensions@^1.0.0":
"integrity" "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U="
"resolved" "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz"
@ -6285,6 +6290,13 @@
"resolved" "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz"
"version" "0.5.0"
"json-bigint@^1.0.0":
"integrity" "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ=="
"resolved" "https://registry.npmmirror.com/json-bigint/-/json-bigint-1.0.0.tgz"
"version" "1.0.0"
dependencies:
"bignumber.js" "^9.0.0"
"json-buffer@3.0.0":
"integrity" "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
"resolved" "https://registry.npm.taobao.org/json-buffer/download/json-buffer-3.0.0.tgz"