Commit acc9ef70 authored by shangtx's avatar shangtx

feat: 轮播图和logo

parent 2261e5c9
......@@ -23,7 +23,7 @@
"lodash.pick": "4.4.0",
"nprogress": "0.2.0",
"tinymce": "5.0.8",
"vue": "^2.6.11",
"vue": "2.6.11",
"vue-cropper": "0.4.4",
"vue-ls": "3.2.0",
"vue-router": "3.0.1",
......@@ -40,7 +40,7 @@
"eslint-plugin-vue": "6.2.2",
"less": "3.8.1",
"less-loader": "4.1.0",
"vue-template-compiler": "^2.6.11"
"vue-template-compiler": "2.6.11"
}
},
"node_modules/@ampproject/remapping": {
......@@ -2215,39 +2215,6 @@
"string.prototype.padstart": "^3.0.0"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.2.tgz",
"integrity": "sha512-khG5m63A4DSeHEOe5yyjHQY2TAE0pUXqKqxgauNUcFaa8M4+J55OWhagy8Bk8O6cO4GhKbQf2NDYzceijmOy8A==",
"dependencies": {
"@babel/parser": "^7.18.4",
"postcss": "^8.4.14",
"source-map": "^0.6.1"
}
},
"node_modules/@vue/compiler-sfc/node_modules/postcss": {
"version": "8.4.14",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
"integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
}
],
"dependencies": {
"nanoid": "^3.3.4",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/@vue/component-compiler-utils": {
"version": "3.3.0",
"dev": true,
......@@ -8716,17 +8683,6 @@
"dev": true,
"license": "ISC"
},
"node_modules/nanoid": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"engines": {
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/nanomatch": {
"version": "1.2.13",
"license": "MIT",
......@@ -11425,14 +11381,6 @@
"node": ">=0.10.0"
}
},
"node_modules/source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-resolve": {
"version": "0.5.3",
"license": "MIT",
......@@ -12897,14 +12845,9 @@
"license": "MIT"
},
"node_modules/vue": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.7.2.tgz",
"integrity": "sha512-fQPKEfdiUP4bDlrGEjI5MOTkC5s/XIbnfKAx0B3MxJHI4qwh8FPLSo8/9tFkgFiRH3HwvcHjZQ1tCTifOUH0tg==",
"license": "MIT",
"dependencies": {
"@vue/compiler-sfc": "2.7.2",
"csstype": "^3.1.0"
}
"version": "2.6.11",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz",
"integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ=="
},
"node_modules/vue-cropper": {
"version": "0.4.4",
......@@ -13084,13 +13027,12 @@
}
},
"node_modules/vue-template-compiler": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.2.tgz",
"integrity": "sha512-3PDLIPankm7b1YZHk6/mTz9kMZaDSd1Vhp1tFPITot5uW9WjnIyv6zRax3+j1kwF0DHmvfIVXMX8G+Rn/BHfaQ==",
"license": "MIT",
"version": "2.6.11",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz",
"integrity": "sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA==",
"dependencies": {
"de-indent": "^1.0.2",
"he": "^1.2.0"
"he": "^1.1.0"
}
},
"node_modules/vue-template-es2015-compiler": {
......@@ -15515,28 +15457,6 @@
"string.prototype.padstart": "^3.0.0"
}
},
"@vue/compiler-sfc": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.2.tgz",
"integrity": "sha512-khG5m63A4DSeHEOe5yyjHQY2TAE0pUXqKqxgauNUcFaa8M4+J55OWhagy8Bk8O6cO4GhKbQf2NDYzceijmOy8A==",
"requires": {
"@babel/parser": "^7.18.4",
"postcss": "^8.4.14",
"source-map": "^0.6.1"
},
"dependencies": {
"postcss": {
"version": "8.4.14",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
"integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
"requires": {
"nanoid": "^3.3.4",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
}
}
}
},
"@vue/component-compiler-utils": {
"version": "3.3.0",
"dev": true,
......@@ -19923,11 +19843,6 @@
"version": "0.0.7",
"dev": true
},
"nanoid": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
},
"nanomatch": {
"version": "1.2.13",
"requires": {
......@@ -21801,11 +21716,6 @@
"source-map": {
"version": "0.6.1"
},
"source-map-js": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
},
"source-map-resolve": {
"version": "0.5.3",
"requires": {
......@@ -22814,13 +22724,9 @@
"version": "1.1.2"
},
"vue": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.7.2.tgz",
"integrity": "sha512-fQPKEfdiUP4bDlrGEjI5MOTkC5s/XIbnfKAx0B3MxJHI4qwh8FPLSo8/9tFkgFiRH3HwvcHjZQ1tCTifOUH0tg==",
"requires": {
"@vue/compiler-sfc": "2.7.2",
"csstype": "^3.1.0"
}
"version": "2.6.11",
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz",
"integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ=="
},
"vue-cropper": {
"version": "0.4.4",
......@@ -22943,12 +22849,12 @@
}
},
"vue-template-compiler": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.2.tgz",
"integrity": "sha512-3PDLIPankm7b1YZHk6/mTz9kMZaDSd1Vhp1tFPITot5uW9WjnIyv6zRax3+j1kwF0DHmvfIVXMX8G+Rn/BHfaQ==",
"version": "2.6.11",
"resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz",
"integrity": "sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA==",
"requires": {
"de-indent": "^1.0.2",
"he": "^1.2.0"
"he": "^1.1.0"
}
},
"vue-template-es2015-compiler": {
......
......@@ -26,7 +26,7 @@
"lodash.pick": "4.4.0",
"nprogress": "0.2.0",
"tinymce": "5.0.8",
"vue": "^2.6.11",
"vue": "2.6.11",
"vue-cropper": "0.4.4",
"vue-ls": "3.2.0",
"vue-router": "3.0.1",
......@@ -43,7 +43,7 @@
"eslint-plugin-vue": "6.2.2",
"less": "3.8.1",
"less-loader": "4.1.0",
"vue-template-compiler": "^2.6.11"
"vue-template-compiler": "2.6.11"
},
"postcss": {
"plugins": {
......
public/favicon.png

14.1 KB | W: | H:

public/favicon.png

12.2 KB | W: | H:

public/favicon.png
public/favicon.png
public/favicon.png
public/favicon.png
  • 2-up
  • Swipe
  • Onion skin
import {axios} from '@/util/axios/request'
const api = {
baseUrl: '/notice'
};
const BANNER_URL = '/banner'
export function getPage(param) {
export function getList() {
return axios({
url: api.baseUrl + '/page',
url: `${BANNER_URL}/list`,
method: 'post',
data: param,
useFullLoading: false
})
}
export function getDetail(id) {
return axios({
url: api.baseUrl + '/detail/' + id,
url: `${BANNER_URL}/${id}`,
method: 'get',
useFullLoading: true
})
}
export function save(param) {
export function save(parameter) {
return axios({
url: api.baseUrl + '/detail',
url: `${BANNER_URL}/save-or-update`,
method: 'post',
data: param,
data: parameter,
useFullLoading: true
})
}
export function deleteOne(id) {
export function enable(parameter) {
return axios({
url: api.baseUrl + '/' + id,
method: 'delete',
useFullLoading: true
url: `${BANNER_URL}/enable`,
method: 'put',
data: parameter,
})
}
export function changeStatus(id) {
export function deleteOne(id) {
return axios({
url: api.baseUrl + '/change/status/' + id,
method: 'put',
useFullLoading: true
url: `${BANNER_URL}/${id}`,
method: 'delete',
})
}
\ No newline at end of file
}
import {axios} from '@/util/axios/request'
const api = {
getPage: '/base/aio/version/page',
getDetail: '/base/aio/version/',
save: '/base/aio/version/',
publish: '/base/aio/version/publish/',
deleteOne: '/base/aio/version/'
}
export default api
export function getPage(parameter) {
return axios({
url: api.getPage,
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function getDetail(id) {
return axios({
url: api.getDetail + id,
method: 'get',
useFullLoading: true
})
}
export function publish(id) {
return axios({
url: api.publish + id,
method: 'get',
useFullLoading: true
})
}
export function deleteOne(id) {
return axios({
url: api.deleteOne + id,
method: 'delete',
})
}
export function save(data) {
return axios({
url: api.save,
method: 'post',
data: data,
useFullLoading: true
})
}
import {axios} from '@/util/axios/request'
const api = {
getPage: '/saas/app/module/getPage',
getDetail: '/saas/app/module/',
deleteOne: '/saas/app/module/',
deleteBatch: '/saas/app/module/batchDelete',
save: '/saas/app/module/',
getConsumePage: '/saas/app/module/consume/list',
}
export default api
export function getPage(parameter) {
return axios({
url: api.getPage,
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function getDetail(id) {
return axios({
url: api.getDetail + id,
method: 'get',
useFullLoading: true
})
}
export function deleteOne(id) {
return axios({
url: api.deleteOne + id,
method: 'delete',
})
}
export function save(data) {
return axios({
url: api.save,
method: 'put',
data: data,
useFullLoading: true
})
}
export function add(data) {
return axios({
url: api.save,
method: 'post',
data: data,
useFullLoading: true
})
}
export function deleteBatch(parameter) {
return axios({
url: api.deleteBatch,
method: 'post',
data: parameter
})
}
export function getConsumePage(parameter) {
return axios({
url: api.getConsumePage,
method: 'post',
data: parameter
})
}
import {axios} from '@/util/axios/request'
const api = {
getPage: '/base/app/version/page',
getDetail: '/base/app/version/',
deleteOne: '/base/app/version/',
save: '/base/app/version/',
getConsumePage: '/base/app/version/consume/list',
}
export default api
export function getPage(parameter) {
return axios({
url: api.getPage,
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function getDetail(id) {
return axios({
url: api.getDetail + id,
method: 'get',
useFullLoading: true
})
}
export function deleteOne(id) {
return axios({
url: api.deleteOne + id,
method: 'delete',
})
}
export function save(data) {
return axios({
url: api.save,
method: 'post',
data: data,
useFullLoading: true
})
}
export function add(data) {
return axios({
url: api.save,
method: 'post',
data: data,
useFullLoading: true
})
}
export function getConsumePage(parameter) {
return axios({
url: api.getConsumePage,
method: 'post',
data: parameter
})
}
import {axios} from '@/util/axios/request'
const api = {
getPage: '/base/community/list',
deleteOne:'/base/community/',
deleteBatch:'/base/community/batchDelete',
save:'/base/community',
getDetail: '/base/community/',
getAllList: '/base/community/all',
}
export default api
export function getPage(parameter) {
return axios({
url: api.getPage,
method: 'post',
data: parameter
})
}
export function getDetail(id) {
return axios({
url: api.getDetail + id,
method: 'get',
useFullLoading: true
})
}
export function deleteOne(id) {
return axios({
url: api.deleteOne+id,
method: 'delete',
})
}
export function deleteBatch(parameter) {
return axios({
url: api.deleteBatch,
method: 'post',
data: parameter
})
}
export function save(data) {
return axios({
url: api.save,
method: 'post',
data: data,
useFullLoading: true
})
}
export function getAllCommunityList() {
return axios({
url: api.getAllList,
method: 'post',
})
}
\ No newline at end of file
import {axios} from '@/util/axios/request'
const api = {
getPage: '/qi/module/getPage',
getDetail: '/qi/module/',
deleteOne: '/qi/module/',
deleteBatch: '/qi/module/batchDelete',
save: '/qi/module/',
getConsumePage: '/qi/module/consume/list',
}
export default api
export function getPage(parameter) {
return axios({
url: api.getPage,
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function getDetail(id) {
return axios({
url: api.getDetail + id,
method: 'get',
useFullLoading: true
})
}
export function deleteOne(id) {
return axios({
url: api.deleteOne + id,
method: 'delete',
})
}
export function save(data) {
return axios({
url: api.save,
method: 'put',
data: data,
useFullLoading: true
})
}
export function add(data) {
return axios({
url: api.save,
method: 'post',
data: data,
useFullLoading: true
})
}
export function deleteBatch(parameter) {
return axios({
url: api.deleteBatch,
method: 'post',
data: parameter
})
}
export function getConsumePage(parameter) {
return axios({
url: api.getConsumePage,
method: 'post',
data: parameter
})
}
import {axios} from '@/util/axios/request'
const api = {
getPage: '/base/user/list',
getDetail: '/base/user/',
deleteOne: '/base/user/',
deleteBatch: '/base/user/batch/del',
save: '/base/user',
getConsumePage: '/base/user/consume/list',
}
export default api
export function getPage(parameter) {
return axios({
url: api.getPage,
method: 'post',
data: parameter
})
}
export function getDetail(id) {
return axios({
url: api.getDetail + id,
method: 'get',
useFullLoading: true
})
}
export function deleteOne(id) {
return axios({
url: api.deleteOne + id,
method: 'delete',
})
}
export function save(data) {
return axios({
url: api.save,
method: 'post',
data: data,
useFullLoading: true
})
}
export function deleteBatch(parameter) {
return axios({
url: api.deleteBatch,
method: 'post',
data: parameter
})
}
export function getConsumePage(parameter) {
return axios({
url: api.getConsumePage,
method: 'post',
data: parameter
})
}
import {axios} from '@/util/axios/request'
const api = {
getPage: 'community/user/list',
getDetail: 'community/user/',
deleteOne: 'community/user/',
deleteBatch: 'community/user/batch/delete',
save: 'community/user/',
changeAllowPush: '/community/user/allow/push/',
changeAllowSpeak: '/community/user/allow/speak/',
}
export default api
export function getPage(parameter) {
return axios({
url: api.getPage,
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function getDetail(id) {
return axios({
url: api.getDetail + id,
method: 'get',
useFullLoading: true
})
}
export function deleteOne(id) {
return axios({
url: api.deleteOne + id,
method: 'delete',
})
}
export function deleteBatch(parameter) {
return axios({
url: api.deleteBatch,
method: 'post',
data: parameter
})
}
export function save(data) {
return axios({
url: api.save,
method: 'post',
data: data,
useFullLoading: true
})
}
/**
* 允许推送修改
* @param id
*/
export function changeAllowPush(id, allowPush) {
return axios({
url: api.changeAllowPush + id + '/'+ allowPush,
method: 'get',
useFullLoading: true
})
}
/**
* 允许发言修改
* @param id
*/
export function changeAllowSpeak(id, allowSpeak) {
return axios({
url: api.changeAllowSpeak + id + '/'+ allowSpeak,
method: 'get',
useFullLoading: true
})
}
\ No newline at end of file
import {axios} from '@/util/axios/request'
const api = {
getPage: '/points/award/rule/template/list',
getDetail: '/points/award/rule/template/',
deleteOne: '/points/award/rule/template/',
deleteBatch: '/points/award/rule/template/batch/delete',
save: '/points/award/rule/template/'
}
export default api
export function getPage(parameter) {
return axios({
url: api.getPage,
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function getDetail(id) {
return axios({
url: api.getDetail + id,
method: 'get',
useFullLoading: true
})
}
export function deleteOne(id) {
return axios({
url: api.deleteOne + id,
method: 'delete',
})
}
export function save(data) {
return axios({
url: api.save,
method: 'post',
data: data,
useFullLoading: true
})
}
export function deleteBatch(parameter) {
return axios({
url: api.deleteBatch,
method: 'post',
data: parameter
})
}
import { axios } from '@/util/axios/request'
const api = {
carList: '/car/info/card/list',
carDetail: '/car/info/',
save: '/car/info/',
delete: '/car/info/delete/',
}
export function getCarList(parameter) {
return axios({
url: api.carList,
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function getDetail(id) {
return axios({
url: api.carDetail + id,
method: 'get',
useFullLoading: true
})
}
export function deleteCar(id) {
return axios({
url: api.delete + id,
method: 'get',
useFullLoading: true
})
}
export function save(data) {
return axios({
url: api.save,
method: 'post',
data: data,
useFullLoading: true
})
}
import { axios } from '@/util/axios/request'
const api = {
homeMyMsg: '/home/my/msg',
systemMsg: '/home/sys/msg',
}
export function getHomeMyMsg() {
return axios({
url: api.homeMyMsg,
method: 'get',
useFullLoading: true
})
}
export function getSysMsg(id) {
return axios({
url: `/home/sys/msg/${id}`,
method: 'get',
useFullLoading: true
})
}
export function getPersonList() {
return axios({
url: `/home/person/list`,
method: 'get',
useFullLoading: true
})
}
export function getCarApplyList(parameter) {
return axios({
url: "/car/apply/list",
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function getMyApplyList(parameter) {
return axios({
url: "/home/my/apply/list",
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function getMyAuditList(parameter) {
return axios({
url: "/home/my/audit/list",
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function saveCarApply(parameter) {
return axios({
url: "/car/apply/save",
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function getSystemMsg(parameter) {
return axios({
url: api.systemMsg,
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function getCarApplyDetail(id) {
return axios({
url: `/car/apply/detail/${id}`,
method: 'get',
useFullLoading: false
})
}
export function getCarSelectList() {
return axios({
url: `/car/info/select/list`,
method: 'get',
useFullLoading: false
})
}
export function readMsg(id) {
return axios({
url: `/home/sys/msg/${id}`,
method: 'get',
useFullLoading: false
})
}
export function carAudit(parameter) {
return axios({
url: '/car/apply/audit',
method: 'post',
data: parameter,
useFullLoading: false
})
}
......@@ -79,10 +79,11 @@ export function getFileName(imageList) {
return fileName;
}
export function getImageUrlList(imageList) {
console.info(imageList)
let rulList = [];
imageList.map(item => {
if (item.response && item.response.data && item.response.data.url) {
rulList.push(item.response.data.url)
if (item.response && item.response.data && item.response.data.urls) {
rulList.push(...item.response.data.urls)
} else {
if (item.url) {
rulList.push(item.url);
......
import { axios } from '@/util/axios/request'
const api = {
baseUrl: '/group/wechat/index/config',
bannerUrl: '/group/wechat/banner',
logoUrl: '/group/wechat/logo',
}
export function getIndexConfig() {
return axios({
url: api.baseUrl,
method: 'get',
useFullLoading: true
})
}
export function delbannerById(id) {
return axios({
url: api.bannerUrl + "/" + id,
method: 'delete',
useFullLoading: true
})
}
export function delLogoById(id) {
return axios({
url: api.logoUrl + "/" + id,
method: 'delete',
useFullLoading: true
})
}
export function saveBanner(data) {
return axios({
url: api.bannerUrl,
data: data,
method: 'post',
useFullLoading: true
})
}
export function saveLogo(data) {
return axios({
url: api.logoUrl,
data: data,
method: 'post',
useFullLoading: true
})
}
import { axios } from '@/util/axios/request'
const api = {
carReport: '/report/car'
}
export function getCarReport(parameter) {
return axios({
url: api.carReport,
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function getPersonReport(parameter) {
return axios({
url: '/report/person',
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function exportCarData(parameter) {
return axios({
responseType: 'blob',
headers: {'Accept': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'},
url: '/report/car/export',
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function exportPersonData(parameter) {
return axios({
responseType: 'blob',
headers: {'Accept': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'},
url: '/report/person/export',
method: 'post',
data: parameter,
useFullLoading: true
})
}
import { axios } from '@util/axios/request'
const api = {
getPage: '/saas/app/boot/advertisement/page',
getDetail: '/saas/app/boot/advertisement/',
deleteOne: '/saas/app/boot/advertisement/',
deleteBatch: '/saas/app/boot/advertisement/batch/delete',
save: '/saas/app/boot/advertisement/',
changeShowStatus: '/saas/app/boot/advertisement/available/',
getModuleAdvertisement: '/saas/app/boot/advertisement/module/',
getModuleAdvertisementCommunity: '/saas/app/boot/advertisement/module/'
}
export default api
export function getPage(parameter) {
return axios({
url: api.getPage,
method: 'post',
data: parameter
})
}
export function getDetail(id) {
return axios({
url: api.getDetail + id,
method: 'get',
useFullLoading: true
})
}
export function deleteOne(id) {
return axios({
url: api.deleteOne + id,
method: 'delete',
})
}
export function deleteBatch(parameter) {
return axios({
url: api.deleteBatch,
method: 'post',
data: parameter
})
}
export function save(data) {
return axios({
url: api.save,
method: 'post',
data: data,
useFullLoading: true
})
}
/**
* 修改启用状态
* @param id
*/
export function changeShowStatus(status, id) {
return axios({
url: api.changeShowStatus + status + '/' + id,
method: 'get',
useFullLoading: true
})
}
export function getModuleAdvertisement(code, param) {
return axios({
url: api.getModuleAdvertisement + code,
method: 'post',
data: param,
useFullLoading: false
})
}
export function getModuleAdvertisementCommunity(code, businessId) {
return axios({
url: api.getModuleAdvertisementCommunity + code + '/' + businessId + '/publish/community',
method: 'get',
useFullLoading: true
})
}
import {axios} from '@/util/axios/request'
const api = {
getPage: '/saas/company/getPage',
getDetail: '/saas/company/',
deleteOne: '/saas/company/',
deleteBatch: '/saas/company/batchDelete',
save: '/saas/company/',
add: '/saas/company',
getAllSaasAppModuleByType: '/saas/app/module/type/',
getAllSaaSBusiness: '/saas/business/tree',
getResource: '/saas/company/resource/',
init: '/saas/company/init',
modify: '/saas/company/modify',
clear: '/saas/company/clear/'
}
export default api
export function getResource(id) {
return axios({
url: api.getResource + id,
method: 'get',
useFullLoading: true
})
}
export function init(data) {
return axios({
url: api.init,
method: 'post',
data: data,
useFullLoading: true
})
}
export function modify(data) {
return axios({
url: api.modify,
method: 'put',
data: data,
useFullLoading: true
})
}
export function clear(id) {
return axios({
url: api.clear + id,
method: 'delete',
useFullLoading: true
})
}
export function getAllSaaSBusiness() {
return axios({
url: api.getAllSaaSBusiness,
method: 'get'
})
}
export function getAllSaasAppModuleByType(type) {
return axios({
url: api.getAllSaasAppModuleByType + type,
method: 'get'
})
}
export function getPage(parameter) {
return axios({
url: api.getPage,
method: 'post',
data: parameter,
useFullLoading: true
})
}
export function getDetail(id) {
return axios({
url: api.getDetail + id,
method: 'get',
useFullLoading: true
})
}
export function deleteOne(id) {
return axios({
url: api.deleteOne + id,
method: 'delete',
})
}
export function deleteBatch(ids) {
return axios({
url: api.deleteBatch,
method: 'post',
data: ids
})
}
export function save(data) {
return axios({
url: api.save,
method: 'put',
data: data
})
}
export function add(data) {
return axios({
url: api.add,
method: 'post',
data: data
})
}
\ No newline at end of file
This diff is collapsed.
<template>
<a-form-item v-bind="formItemLayout" :label="label">
<a-upload
v-decorator="[
decoration,
{
rules: [{ required, message: `请上传${label}` }],
getValueFromEvent: normFile
}
]"
style="width: 100%"
:fileList="imageList"
name="files"
:beforeUpload="beforeUpload"
listType="picture-card"
:action="getUploadImageUrl(business)"
:headers="uploadImageHeader"
@change="handleChangeImg"
@preview="handlePreview"
:multiple="multiple"
>
<div v-if="imageList.length < maxLength">
<a-icon type="plus" />
<div class="ant-upload-text">上传图片</div>
</div>
</a-upload>
<a-modal :visible="previewVisible" :footer="null" @cancel="handleCancel">
<img alt="example" style="width: 100%" :src="previewImage" />
</a-modal>
</a-form-item>
</template>
<script>
import {
getOneImageURL,
getUploadImageHeader,
handleUploadChange,
imgBeforeUpload,
getImageUrlList
} from '@/api/common/fileUpload'
export default {
name: 'ImageUploader',
props: {
form: Object, // antdv form
decoration: String, // 定义名称 如'image' 'thumbnail' 之类的
label: String, // 字段标签
// 布局设置参照antdv Form组件文档 https://www.antdv.com/components/form-cn/
formItemLayout: {
type: Object,
default: () => ({
labelCol: { sm: { span: 8 } },
wrapperCol: { sm: { span: 16 } }
})
},
required: Boolean, // 是否必填
business: {
type: String,
default: 'default'
}, // 上传业务编码 拼oss路径需要
maxLength: {
// 最大上传数量,一般就1个
type: Number,
required: false,
default: 1
},
multiple: {
// 是否支持多选, 不指定时且当最大上传数量大于1时为true
type: Boolean,
required: false,
default() {
return this.maxLength > 1
}
}
},
data() {
return {
imageList: [], // 文件List
getUploadImageHeader,
handleUploadChange,
imgBeforeUpload,
uploadImageHeader: getUploadImageHeader(),
previewImage: null, // 预览图url
previewVisible: false // 预览modal显示
}
},
methods: {
getOneImageURL,
getUploadImageUrl() {
return process.env.VUE_APP_URL + 'upload?fileType=IMG'
},
getImageUrlList,
normFile(e) {
if (Array.isArray(e)) {
return e
}
return e && e.fileList
},
handleChangeImg({ fileList }) {
this.loading = handleUploadChange(fileList)
this.imageList = fileList
},
/**
* 预览
*/
handlePreview(file) {
this.previewImage = file.url || file.thumbUrl
this.previewVisible = true
},
// 上传文件之前的钩子
beforeUpload(file, fileList) {
// 如果选择的文件数量超过最大数量,取消多余的文件
const index = fileList.findIndex((f) => f.uid == file.uid)
if (index + 1 > this.maxLength) {
return false
}
return imgBeforeUpload(file)
},
//
handleCancel() {
this.previewVisible = false
},
/**
* 设置图片
* @param urls 图片url数组
*/
setValue(urls) {
if (!urls || urls.length == 0) {
console.warn('urls is empty or null')
return
}
this.imageList = urls.map((url, i) => ({
uid: -i - 1,
name: `${i}.png`,
status: 'done',
url
}))
this.form.setFieldsValue({ [this.decoration]: this.imageList })
},
// 重置
reset() {
this.imageList = []
},
/**
* 获取图片
* @returns 图片url数组
* */
getValue() {
console.info(this.imageList)
return this.getImageUrlList(this.imageList)
}
},
mounted() {}
}
</script>
\ No newline at end of file
......@@ -113,12 +113,7 @@ export default {
return menuArr
},
onOpenChange (openKeys) {
const latestOpenKey = openKeys.find(key => this.openKeys.indexOf(key) === -1)
if (this.rootSubmenuKeys.indexOf(latestOpenKey) === -1) {
this.openKeys = openKeys
} else {
this.openKeys = latestOpenKey ? [ latestOpenKey ] : []
}
this.openKeys = openKeys
},
updateMenu () {
let routes = this.$route.matched.concat()
......
......@@ -59,7 +59,7 @@
:class="[layoutMode, `content-width-${contentWidth}`]"
:style="{
paddingLeft:
fixSiderbar && isDesktop() ? `${sidebarOpened ? 213 : 80}px` : '0',
fixSiderbar && isDesktop() ? `${sidebarOpened ? 213 : 80}px` : '0'
}"
>
<!-- layout header -->
......@@ -81,7 +81,7 @@
scrollBehavior: 'smooth',
marginRight: '16px',
overflow: 'hidden',
marginTop: fixedHeader ? '64px' : '14px',
marginTop: fixedHeader ? '64px' : '14px'
}"
>
<slot></slot>
......@@ -90,85 +90,84 @@
<!-- layout footer -->
<a-layout-footer style="padding: 0px"></a-layout-footer>
</a-layout>
</a-layout>
</template>
<script>
import SideMenu from "@/components/menu/SideMenu";
import GlobalHeader from "@/components/page/GlobalHeader";
import { triggerWindowResizeEvent } from "@/util/util";
import { mapActions, mapState } from "vuex";
import { mixin, mixinDevice } from "@/util/mixin.js";
import SideMenu from '@/components/menu/SideMenu'
import GlobalHeader from '@/components/page/GlobalHeader'
import { triggerWindowResizeEvent } from '@/util/util'
import { mapActions, mapState } from 'vuex'
import { mixin, mixinDevice } from '@/util/mixin.js'
export default {
name: "GlobalLayout",
name: 'GlobalLayout',
components: {
SideMenu,
GlobalHeader,
GlobalHeader
},
mixins: [mixin, mixinDevice],
data() {
return {
collapsed: false,
menus: [],
};
menus: []
}
},
computed: {
...mapState({
// 主路由
mainMenu: (state) => state.permission.addRouters,
company: (state) => state.user.company,
}),
company: (state) => state.user.company
})
},
watch: {
sidebarOpened(val) {
this.collapsed = !val;
},
this.collapsed = !val
}
},
created() {
this.menus = this.filterHidenRouter(
this.mainMenu.find((item) => item.path === "/").children
);
this.mainMenu.find((item) => item.path === '/').children
)
},
methods: {
...mapActions(["setSidebar"]),
...mapActions(['setSidebar']),
toggle() {
this.collapsed = !this.collapsed;
this.setSidebar(!this.collapsed);
triggerWindowResizeEvent();
this.collapsed = !this.collapsed
this.setSidebar(!this.collapsed)
triggerWindowResizeEvent()
},
menuSelect() {
if (!this.isDesktop()) {
this.collapsed = false;
this.collapsed = false
}
},
filterHidenRouter(routes, init = []) {
for (let i = 0; i < routes.length; i++) {
let item = routes[i];
let item = routes[i]
if (item.hidden == true) {
continue;
continue
}
let routerItem = {
meta: {},
};
routerItem.path = item.path;
routerItem.name = item.name;
routerItem.meta.title = item.meta.title;
meta: {}
}
routerItem.path = item.path
routerItem.name = item.name
routerItem.meta.title = item.meta.title
if (item.meta.icon) {
routerItem.meta.icon = item.meta.icon;
routerItem.meta.icon = item.meta.icon
}
if (item.children) {
routerItem.children = [];
this.filterHidenRouter(item.children, routerItem.children);
routerItem.children = []
this.filterHidenRouter(item.children, routerItem.children)
}
init.push(routerItem);
init.push(routerItem)
}
return init;
},
},
};
return init
}
}
}
</script>
<style lang="less">
......@@ -202,7 +201,6 @@ body {
padding: 5px !important;
}
//列表页样式调整
.ant-advanced-search-form {
margin-bottom: 15px !important;
......@@ -642,10 +640,10 @@ body {
color: #fff;
font-size: 16px;
margin: 0 0 0 12px;
font-family: "Chinese Quote", -apple-system, BlinkMacSystemFont,
"Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
"Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol";
font-family: 'Chinese Quote', -apple-system, BlinkMacSystemFont,
'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei',
'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Color Emoji',
'Segoe UI Emoji', 'Segoe UI Symbol';
/*font-weight: 600;*/
}
}
......@@ -757,7 +755,7 @@ body {
* 百度地图
*/
#baiduMap {
font-family: "Avenir", Helvetica, Arial, sans-serif;
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
......@@ -784,4 +782,16 @@ body {
.bg-row {
background-color: lightgrey;
}
.drawer-form-bottom-toolbar {
position: absolute;
right: 0;
bottom: 0;
width: 100%;
border-top: 1px solid #e9e9e9;
padding: 10px 16px;
background: #fff;
text-align: right;
z-index: 1;
}
</style>
\ No newline at end of file
......@@ -60,10 +60,10 @@
</template>
<a-col :span="6" style="float: right">
<a-space style="margin-top:4px; float:right">
<a-space style="margin-top:4px; float:right;margin-bottom: 15px">
<a-button @click="onReset">&nbsp;</a-button>
<a-button type="primary" @click="onSearch">&nbsp;</a-button>
<a-button type="link" @click="collapse">
<a-button v-if="list.length > 3" type="link" @click="collapse">
{{collapsed? '展开': '收起'}}
<a-icon type="up" v-if="!collapsed" />
<a-icon type="down" v-show="collapsed" />
......
......@@ -83,17 +83,20 @@ export default {
},
paginationConfig: function () {
return {
onChange: this.pageChange,
current: this.query.page,
defaultPageSize: this.$defaultPageSize(),
pageSizeOptions: this.$pageSizeOptions,
onShowSizeChange: this.sizeChange,
total: this.total,
showSizeChanger: true,
showQuickJumper: true,
showTotal: this.$showTotal
if (this.pagination) {
return {
onChange: this.pageChange,
current: this.query.page,
defaultPageSize: this.$defaultPageSize(),
pageSizeOptions: this.$pageSizeOptions,
onShowSizeChange: this.sizeChange,
total: this.total,
showSizeChanger: true,
showQuickJumper: true,
showTotal: this.$showTotal
}
}
return false
}
},
......
<template>
<div class="common-table-container" v-if="!!soul">
<div class="common-table-container" v-if="soul.columns">
<search-form
v-if="soul.useSearch"
v-if="soul.useSearch && soul.filters.length"
v-model="soul.query"
:list="soul.filters"
:reload="soul.loadData"
......@@ -24,7 +24,8 @@
soul.useSelection
? {
selectedRowKeys: soul.selectedRowKeys,
onChange: soul.updateSelect
onChange: soul.updateSelect,
columnWidth: 40
}
: null
"
......@@ -37,12 +38,18 @@
{{ soul.title }}
</span>
<div class="cust-table-operator">
<template v-if="soul.filters.length == 0">
<a-button type="primary" @click="soul.search">查询</a-button>
&nbsp;
<a-button @click="soul.reset">重置</a-button>
&nbsp;
</template>
<a-button-group>
<!-- 额外的按钮 -->
<template v-for="(tool, i) in soul.toolbar">
<a-button
:key="i"
@click="tool.handler"
@click="soul[tool.handler]()"
v-if="!tool.bizCode || soul.hasPerm(tool.bizCode)"
>{{ tool.text }}</a-button
>
......
<template>
<div class="logo">
<router-link :to="{path:'/'}">
<img src="@/assets/logo.png" alt="logo" style="width: 30px;height:30px">
<img src="/favicon.png" alt="logo" style="width: 30px;height:30px">
<h1 v-if="showTitle">{{ title }}</h1>
</router-link>
</div>
......
<template>
<a-drawer
:width="500"
:visible="visible"
:title="id ? '编辑' : '新增'"
@close="close"
>
<a-form :form="form" layout="vertical">
<a-form-item label="描述">
<a-input v-decorator="['description']" />
</a-form-item>
<ImageUpload
label="图片"
decoration="url"
:formItemLayout="null"
:required="true"
ref="image"
:form="form"
/>
<a-form-item label="排序">
<a-input-number v-decorator="['showOrder']" />
</a-form-item>
</a-form>
<div class="drawer-form-bottom-toolbar">
<a-button :style="{ marginRight: '8px' }" @click="close"> 取消 </a-button>
<a-button type="primary" @click="submit"> 保存 </a-button>
</div>
</a-drawer>
</template>
<script>
import ImageUpload from '@/components/image-upload/ImageUpload'
import { save, getDetail } from '@/api/banner'
export default {
name: 'BannerEdit',
components: { ImageUpload },
props: { success: Function },
data() {
return {
form: this.$form.createForm(this),
visible: false,
id: null
}
},
methods: {
show(id) {
console.info('id', id)
this.id = id
this.visible = true
if (this.id) {
getDetail(this.id).then(({ data }) => {
this.form.setFieldsValue(data)
this.$refs.image.setValue([data.url])
})
}
},
close() {
this.id = null
this.$refs.image.reset()
this.form.resetFields()
this.visible = false
},
submit() {
this.form.validateFields((err, values) => {
if (err) {
return
}
console.info('values', values, this.$refs.image.getValue())
const reqData = {
...values,
url: this.$refs.image.getValue()[0],
id: this.id
}
save(reqData).then(({ code }) => {
if (code == 200) {
this.$message.success('保存成功')
this.close()
this.success()
}
})
})
}
}
}
</script>
\ No newline at end of file
<template>
<table-template :soul="this">
<template #preview="{ record }">
<a @click="preview(record.url)"><a-icon type="eye" /></a>
</template>
<template #switch="{ record, index }">
<a-switch
:checked="dataSource[index].enabled"
checked-children="启用"
un-checked-children="禁用"
:loading="loadingKeys.includes(record.id)"
@click="enableChange(record, index)"
/>
</template>
<template #action="{ record }">
<a-space>
<a @click="edit(record.id)">编辑</a>
<a style="color: red" @click="deleteRow(record.id)">删除</a>
</a-space>
</template>
<template #free>
<BannerEdit ref="BannerEdit" :success="reset" />
</template>
</table-template>
</template>
<script>
import { TableTemplate, TableScript } from '@/components/table'
import { getList, enable, deleteOne } from '@/api/banner'
import dayjs from 'dayjs'
import BannerEdit from './BannerEdit.vue'
const columns = [
{ title: '描述', dataIndex: 'description' },
{ title: '排序号', dataIndex: 'showOrder', width: 120 },
{
title: '预览',
width: 120,
align: 'center',
scopedSlots: { customRender: 'preview' }
},
{
title: '启用/禁用',
width: 120,
scopedSlots: { customRender: 'switch' },
align: 'center'
},
{
title: '创建时间',
dataIndex: 'createTime',
width: 150,
customRender: (text) => dayjs(text).format('YYYY-MM-DD HH:mm:ss')
},
{
title: '启用/禁用',
width: 120,
scopedSlots: { customRender: 'action' },
align: 'center'
}
]
export default {
name: 'ErrorLogList',
mixins: [TableScript],
components: { TableTemplate, BannerEdit },
data() {
return {
columns,
useYScroll: true,
pagination: false,
title: '首页轮播图',
loadingKeys: [],
toolbar: [
{
text: '新增',
handler: 'add'
}
]
}
},
methods: {
queryData: getList,
add() {
this.$refs.BannerEdit.show(null)
},
edit(id) {
this.$refs.BannerEdit.show(id)
},
preview(value) {
console.info(value)
},
deleteRow(id) {
const _this = this
this.$confirm({
title: '提示',
content: '是否删除',
onOk() {
deleteOne(id).then(({ code }) => {
if (code == 200) {
_this.$message.success('删除成功')
_this.reset()
}
})
}
})
},
enableChange(record, index) {
if (this.loadingKeys.includes(record.id)) {
return
}
this.loadingKeys.push(record.id)
enable({ id: record.id, enabled: !record.enabled })
.then(({ code }) => {
if (code == 200) {
this.$message.success('保存成功')
this.dataSource[index].enabled = !record.enabled
}
})
.finally(() => {
console.info(this.loadingKeys.includes(record.id))
this.loadingKeys.splice(this.loadingKeys.indexOf(record.id), 1)
})
}
}
}
</script>
\ No newline at end of file
......@@ -4,24 +4,30 @@
<script>
import { TableTemplate, TableScript, SearchType } from '@/components/table'
import { getPage } from '@/api/base/baseErrorLog'
import dayjs from 'dayjs'
const columns = [
{ title: '操作人员', width: 120, dataIndex: 'userName' },
{
title: '项目名称',
width: 130,
dataIndex: 'projectName',
filter: { type: SearchType.STRING }
},
{ title: '错误码', width: 100, dataIndex: 'errorCode', filter: { type: SearchType.STRING } },
{ title: '平台类型', width: 100, dataIndex: 'platform', filter: { type: SearchType.STRING } },
{ title: '日志异常信息', dataIndex: 'content', width: 300, ellipsis: true, filter: { type: SearchType.STRING } },
{
title: '错误码',
width: 100,
dataIndex: 'errorCode',
filter: { type: SearchType.STRING }
},
{ title: '平台类型', width: 100, dataIndex: 'platform' },
{ title: '日志异常信息', dataIndex: 'content', width: 300, ellipsis: true },
{
title: '创建时间',
dataIndex: 'createTime',
width: 120,
sorter: true,
filter: { type: SearchType.STRING }
// customRender: (text) => formatDate(new Date(text), 'yyyy-MM-dd hh:mm')
filter: { type: SearchType.RANGE },
customRender: (text) => dayjs(text).format('YYYY-MM-DD HH:mm:ss')
}
]
......
<template>
<a-card>
<div class="cust-list-cart" ref="code">
<a-form layout="horizontal" class="ant-advanced-search-form">
<div>
<a-row>
<a-col :span="6">
<a-form-item
label="项目名称"
:labelCol="{ span: 8 }"
:wrapperCol="{ span: 16 }"
>
<a-input
@pressEnter="search"
style="width: 100%"
v-model="query.projectName"
placeholder="请输入"
/>
</a-form-item>
</a-col>
<a-col :span="6">
<a-form-item
label="错误码"
:labelCol="{ span: 8 }"
:wrapperCol="{ span: 16 }"
>
<a-input
@pressEnter="search"
style="width: 100%"
v-model="query.errorCode"
placeholder="请输入"
/>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item
label="创建时间"
:labelCol="{ span: 4 }"
:wrapperCol="{ span: 20 }"
>
<a-range-picker
style="width: 100%"
:value="ctDatePicker"
@change="onCtDateChange"
/>
</a-form-item>
</a-col>
</a-row>
</div>
</a-form>
<a-table
size="middle"
@change="sortChange"
:columns="columns"
:dataSource="dataSource"
:pagination="false"
:rowKey="rowKey"
bordered
>
<div slot="title" slot-scope="data">
<span class="cust-title">
<a-icon type="hdd" />异常日志列表{{ data.none }}
</span>
<div class="cust-table-operator">
<a-button-group>
<a-button type="primary" @click="search">查询</a-button>
<a-button key="dddsa" type="primary" @click="exportExcel">xxsad</a-button>
<a-button @click="reset">重置</a-button>
</a-button-group>
</div>
</div>
<!-- <div slot="footer" slot-scope="data">
{{ data.none }}
<a-pagination
@change="pageChange"
:defaultPageSize="defaultPageSize"
:pageSizeOptions="$pageSizeOptions"
@showSizeChange="sizeChange"
class="cust-pagination"
size="small"
:total="total"
showSizeChanger
showQuickJumper
:showTotal="$showTotal"
/>
</div> -->
</a-table>
</div>
</a-card>
</template>
<script>
import { getPage, exportExxx } from '@/api/base/baseErrorLog'
import { formatDate, humpToLine, setOrder } from '@/util/util'
import fileDownload from 'js-file-download';
const dataSource = []
const columns = [
{ title: '操作人员', width: 120, dataIndex: 'userName' },
{ title: '项目名称', width: 130, dataIndex: 'projectName' },
{ title: '错误码', width: 100, dataIndex: 'errorCode' },
{ title: '平台类型', width: 100, dataIndex: 'platform' },
{ title: '日志异常信息', dataIndex: 'content', width: 300, ellipsis: true },
{
title: '创建时间',
dataIndex: 'createTime',
width: 120,
sorter: true,
customRender: (text) => formatDate(new Date(text), 'yyyy-MM-dd hh:mm')
}
]
export default {
name: 'ErrorLogList',
data() {
return {
query: {
page: 1,
size: 10,
projectName: '',
errorCode: '',
ctDateBegin: '',
ctDateEnd: '',
sort: ''
},
ctDatePicker: [],
rowKey: 'id',
total: 0,
columns: columns,
dataSource: dataSource,
isFirstLoad: true
}
},
methods: {
reset() {
this.query.page = 1
this.query.projectName = ''
this.query.errorCode = ''
this.query.ctDateBegin = ''
this.query.ctDateEnd = ''
this.ctDatePicker = []
this.loadData()
},
exportExcel() {
exportExxx().then((response) => {
if (response && response.data) {
fileDownload(response.data, '退票统计.xlsx')
}
})
},
loadData(size) {
if (size && !isNaN(size)) {
this.query.size = size
}
getPage(this.query).then((response) => {
if (response && response.code == SYS_CONST.REQUEST.SUCCEED) {
let respData = response.data
this.dataSource = respData.list
this.total = respData.total
}
})
},
search() {
this.query.page = 1
this.loadData()
},
onCtDateChange(date, dateString) {
this.ctDatePicker = date
this.query.ctDateBegin = dateString[0]
this.query.ctDateEnd = dateString[1]
this.loadData()
},
pageChange(page) {
this.query.page = page
this.loadData()
},
sizeChange(current, size) {
this.query.size = size
this.loadData()
},
sortChange(pagination, filters, sorter) {
this.query.sort = humpToLine(sorter.field)
this.query.order = setOrder(sorter.order)
this.loadData()
}
},
computed: {
defaultPageSize: function () {
return this.$defaultPageSize()
}
},
mounted() {},
activated() {
if (this.isFirstLoad == true) {
this.loadData(this.defaultPageSize)
this.isFirstLoad = false
} else {
let isModify = this.$route.query.isModify
if (isModify == true) {
this.loadData()
} else if (isModify != undefined) {
this.loadData()
}
}
}
}
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<keep-alive v-if="keepAlive">
<router-view/>
</keep-alive>
<router-view v-else/>
</template>
<script>
export default {
name: "ErrorLogRouteView",
computed: {
keepAlive() {
return this.$route.meta.keepAlive
}
},
}
</script>
\ No newline at end of file
......@@ -82,7 +82,7 @@
</a-col>
<a-col :span="12">
<a-form-item label='保留状态' :labelCol="{ span: 5 }" :wrapperCol="{ span: 17 }">
<a-radio-group v-decorator="['vrKeepAlive', {initialValue: sysBusiness.vrKeepAlive}]" >
<a-radio-group v-decorator="['isCache', {initialValue: sysBusiness.isCache}]" >
<a-radio :value="true"></a-radio>
<a-radio :value="false"></a-radio>
</a-radio-group>
......@@ -106,7 +106,7 @@
vrComponentPath:'',
showOrder:'',
showInMenu:true,
vrKeepAlive:true,
isCache:true,
}
let propertyList = mapKeyToList(initData);
......
......@@ -64,7 +64,7 @@ export default {
data() {
return {
isChildBusiness: false, //是否是子业务
rootId: 0, //根节点id
rootId: 'SYS000', //根节点id
modalTitle: '新建业务',
modalWidth: 800,
columns: columns,
......@@ -82,7 +82,6 @@ export default {
getList(this.apiUrl).then((response) => {
if (response && response.code == SYS_CONST.REQUEST.SUCCEED) {
let rootBusiness = response.data[0]
this.rootId = rootBusiness.id
const list = rootBusiness.children
this.checkChildren(list)
this.businessList = list
......@@ -116,10 +115,9 @@ export default {
}
},
addChild(row) {
console.info('record', row)
this.sysBusiness = {}
this.isChildBusiness = true
this.sysBusiness.parentId = row.id
this.sysBusiness.parentCode = row.code
this.$refs.sysBusinessItemDetail.show(
SYS_CONST.OPT_TYPE.ADD,
this.isChildBusiness,
......@@ -129,14 +127,14 @@ export default {
addNew() {
this.sysBusiness = {}
this.isChildBusiness = false
this.sysBusiness.parentId = this.rootId
this.sysBusiness.parentCode = this.rootCode
this.$refs.sysBusinessItemDetail.show(
SYS_CONST.OPT_TYPE.ADD,
this.isChildBusiness
)
},
editRow(row) {
if (row.parentId == this.rootId) {
if (row.parentId == this.rootCode) {
//编辑一级菜单
this.isChildBusiness = false
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment