;9JbF$Bq
z@CzR)x~_cW@%cPoittmeG$IlQn*tebWBSH)yvrBx!S7K$=<@~j4#7#N@
z_v$oUIX+b=xhu12a!qf@BzO8opmpV?lGJ;&LQ63TGEND2bV0JTHbrD*2KKqm8X*rH
z5lqOeUo|`IHz#AcDBL-QVTaQ`94lGFax-&fmyiIWEz+Q`mP3+
z;GVOmfn|`m1Q8K43gQuQV_R^o<6V
z&|$1Ju#A#;YHYb&S}jkt-?D4{bxX06)gZ7Z_KX@Gnoe*0|Sz_`#{bVaHru4
zKzc2~(bfxZb3IM|w6o3y=l=l5!{EPw8$L3oFpU|^Vh;0Iz#^8gj6F!6s#ceX{=q83
z?AqL!xs};DzEWMROqUjg2WG2lC+A9w>^vchrvX+@%`H~s`%8qd{mfcvkz1K9FV2>Y
a*|q94beo?mLyzkAsp`@hM^2>#ari&oIX6K7
delta 393
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
Cz+?sh
delta 991
zcmca3wSrru+~3WOfsp|SSXVG`gJ_N`6GiOmJ^m!;CKfO-Fm?cif`N2f%Et@m(sL@)
zfb2U!e2#&EY0kWhCIT6$i75;W%xi$^^nut+$DwjV22ccp9T$Zem3NgE<3>08mgKh!q$`89MS3b5nr|4S*Iq
z04+`zSZuSQAiuZ-=xm@P8BBrLeV^f@zmqu_ofwlQdo!xm+gwh{`*Hukfde(|j2=b?
zi!_p$7}EFh^i<4wJK-R2g8>h-e&$PNLylDv9paD6d$0K>a_hvdv8a^1(V(I?@t|DK
z%IKA@^KK}g{}}wF%{=O@tle~j>&}*$rq)6aK#uk@pIS-h3
zJ!8M|LGy3xx`@=PYbFG=R`h0HcEH4wd5j;2Wt+3zM8^K?r
zGxy)$sVuhii0P@aPlB1%cLOTDVv{u6?rronE}K5h>gU(ho)2erF7z@z^JnVRx{bAq
z`^)z}s88N9?abq?DPk2dB`3SD{Jc*f+!*7iTaj+sF;pK;#i#oW$}X2}Uj4Gem0ZyIJ!?3_4r
tVymOYViS8+dwpAVV^d9I!+3Mc{R<}9%4$rQH{<*P28PXVxlRJj2LNl0nA!jU
diff --git a/src/assets/iconfont/iconfont.woff2 b/src/assets/iconfont/iconfont.woff2
index a000978bad604fc017d170880018a4c65267a05b..4b6124934df4f413b74f0623921afddacf1f3cf6 100644
GIT binary patch
literal 2864
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
O0%lZ4lEBdG0RRB>BWafa
delta 1003
zcmV3X9q_cuLlv;n>ERPB*wOA^3K}FMH5Z5HxmT(p5JVC%RG>0GCjIE0$&mu
z057N2)mVh-l(oP7^cg@mIYNK@aqsvqin2hS#SrM)`#fCd)5^Or9b;QM!Mi*lZ>e3x
zK?y7Wd<_C{l8X|5XyqzYtA|gw*8O@AfdZ8ZC^AL2&K+B0ca^AtOo1JN6*^UEVg?q_
zCTf>}>GJd94S9qeG%OOdO05p%+i~nU&oiXqF+kphmmtu)Yk&oiK-S6BqQ$VW5i$#A
zA#rvIm62#gA<$O!csxjEEViEckEemKf`nc=krvY6Ig|>20nam(XgVgv))}t1AZD5&
z$gtZ{ehBe8B_k>%uA_6(5g}Yhb$#+-Fb*}DGzScKnLoF!7SpMQ=yUZOTpP_s*Bk5V
zc|!)83qs5_L30)byMxz<;}aKSWGyNdHfM3L+pSMt8=AQ_a%=2TaXrtL4wLq!%{uMe
zHZZnd*7f>->-X!EBR2}0E5jT#$qZ>=n$AV(Ct$?uhRzLb*xFpPZc*^H`qwb(U9Gn+
z-5u=iin-D7hPd7UH{Y_-JRdzFn$mn0rs}KnMJ?(bwyxMuZxJTEe|q_c`Rh|kB*H1-
ze)>1E2uJA`-pL*F*1T<>cp_o(r}^jNmNdIGa)&;DbVh37nvZgvm{NLuK9|+$sFda2
zQ*PCzoU+3FVu4kI`gOeZpjBLn7YXm;UX+e)b?aHjenFuR^QLuA%;V8!uTh=-pS>;j
z!_wDxpwBycKi|HNy1Cnb{-xnlKbI>twQP-q3Rz8Cx65i0SEhWe5*zC0Y3tuMPyH(O
zQ|jb@?b=7H6J9;2RBEX!v;y^%UA4F1F_cZZevjYKE%8_1mcGTl*>wfL)2R`+BpYT1
z`+YMC_!-)3rmW!cD4UxMQUR3n8$~3;u-|1lPV4~>$Qr=?`Qkt@8H6~n01X?FAhDBx
zC?W$a=;Q$_c8Y_OOv=yJ38WVip&UR8qcsqJ_^}=|eAo{XKh7eGxB(VIcmY=Y_yK*x5owoVjsCm*o(A8}{a>E^Ui4pn3y%_S`{&0^O0i;@Z1Fo(f*C;4J>h3gSu$pm(KMgcE7eR&f{^IT8)&Wk?iBf1n
Z3PoV2L!#`wPUt5mRgm;AxfWn2MFGU`*zy1X
diff --git a/src/components/GxMap/index.vue b/src/components/GxMap/index.vue
new file mode 100644
index 0000000..ab1d08c
--- /dev/null
+++ b/src/components/GxMap/index.vue
@@ -0,0 +1,262 @@
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/comment/index.vue b/src/components/comment/index.vue
new file mode 100644
index 0000000..e69de29
diff --git a/src/components/index.js b/src/components/index.js
index 7a747b5..1c2c111 100644
--- a/src/components/index.js
+++ b/src/components/index.js
@@ -20,6 +20,7 @@ import UploadInput from './Upload/UploadInput.vue'
import Scrollbar from './Scrollbar/Scrollbar.vue'
import Cascader from './Cascader/Cascader.vue'
import GxUpload from './GxUpload/index.vue'
+import GxMap from './GxMap/index.vue'
import { setupLoadingDirective } from './Loading/directive'
const componentList = [
@@ -42,7 +43,8 @@ const componentList = [
UploadInput,
Scrollbar,
Cascader,
- GxUpload
+ GxUpload,
+ GxMap
]
export const loading = Loading
diff --git a/src/enums/index.js b/src/enums/index.js
index 64ab02b..8811e43 100644
--- a/src/enums/index.js
+++ b/src/enums/index.js
@@ -1,15 +1,57 @@
import {EnumManager} from './enums'
const activatyStatus = new EnumManager([
+ { value: 1, name: '待审核', color: '#faad14' }, // 黄色(警告色)
+ { value: 2, name: '待开始', color: '#faad14' }, // 黄色(警告色)
+ { value: 3, name: '进行中', color: '#52c41a' }, // 绿色(进行中)
+ { value: 4, name: '已结束', color: '#bfbfbf' }, // 灰色(失效色)
+ { value: 99, name: '审核不通过', color: '#ff4d4f' } // 红色(错误色)
+])
+//工单
+const orderStatus = new EnumManager([
{ value: 1, name: '待审核', color: '#faad14' }, // 黄色(警告色)
{ value: 2, name: '进行中', color: '#52c41a' }, // 绿色(进行中)
{ value: 3, name: '已完成', color: '#1890ff' }, // 蓝色(完成色)
- { value: 4, name: '已过期', color: '#bfbfbf' }, // 灰色(失效色)
- { value: 5, name: '审核不通过', color: '#ff4d4f' } // 红色(错误色)
+ { value: 97, name: '已过期', color: '#bfbfbf' }, // 灰色(失效色)
+ { value: 98, name: '已撤销', color: '#bfbfbf' }, // 灰色(失效色)
+ { value: 99, name: '审核不通过', color: '#ff4d4f' } // 红色(错误色)
+])
+//公告状态
+const announcementStatus = new EnumManager([
+ { value: 1, name: '待审核', color: '#faad14' }, // 黄色(警告色)
+ { value: 2, name: '进行中', color: '#52c41a' }, // 绿色(进行中)
+ { value:98, name: '停用', color: '#bfbfbf' }, // 灰色(失效色)
+ { value: 99, name: '审核不通过', color: '#ff4d4f' } // 红色(错误色)
])
-
const enumsStatus = new EnumManager([
- { value: 0, name: '启用', color: '#52c41a' }, // 绿色(启用)
- { value: 1, name: '停用', color: '#ff4d4f' } // 红色(停用)
+ { value: 1, name: '启用', color: '#52c41a' }, // 绿色(启用)
+ { value: 2, name: '停用', color: '#ff4d4f' } // 红色(停用)
])
-export {activatyStatus,enumsStatus}
\ No newline at end of file
+//互助状态
+const nbdMutualStatus = new EnumManager([
+ { value: 1, name: '待审核', color: '#faad14' }, // 黄色(警告色)
+ { value: 2, name: '进行中', color: '#52c41a' }, // 绿色(进行中)
+ { value: 3, name: '已完成', color: '#1890ff' }, // 蓝色(完成色)
+ { value: 98, name: '已撤销', color: '#bfbfbf' }, // 灰色(失效色)
+ { value: 99, name: '审核不通过', color: '#ff4d4f' } // 红色(错误色)
+])
+//工单类型状态
+const workTypeStatus = new EnumManager([
+ { value: 1, name: '待审核', color: '#faad14' }, // 黄色(警告色)
+ { value: 2, name: '启用中', color: '#52c41a' }, // 绿色(进行中)
+ { value: 98, name: '禁用', color: '#bfbfbf' }, // 灰色(失效色)
+ { value: 99, name: '审核不通过', color: '#ff4d4f' } // 红色(错误色)
+])
+//会议室类型状态
+const mettingStatus = new EnumManager([
+ { value: 1, name: '待审核', color: '#faad14' }, // 黄色(警告色)
+ { value: 2, name: '启用中', color: '#52c41a' }, // 绿色(进行中)
+ { value: 98, name: '禁用', color: '#bfbfbf' }, // 灰色(失效色)
+ { value: 99, name: '审核不通过', color: '#ff4d4f' } // 红色(错误色)
+])
+//用户类型状态
+const userStatus = new EnumManager([
+ { value: 1, name: '启用', color: '#52c41a' }, // 黄色(警告色)
+ { value: 2, name: '禁用', color: '#ff4d4f' } // 红色(错误色)
+])
+export {activatyStatus,enumsStatus,orderStatus,announcementStatus,nbdMutualStatus,workTypeStatus,mettingStatus,userStatus}
\ No newline at end of file
diff --git a/src/locales/lang/zh-CN/menu.js b/src/locales/lang/zh-CN/menu.js
index a588162..4e29e26 100644
--- a/src/locales/lang/zh-CN/menu.js
+++ b/src/locales/lang/zh-CN/menu.js
@@ -32,8 +32,21 @@ export default {
account: '个人页',
'account.trigger': '触发报错',
'account.logout': '退出登录',
- homebanner:'首页轮播图',
- neighborhood:'邻里圈轮播图',
- announcementList:'社区公告',
- activity:'活动列表'
+ homebanner: '首页轮播图',
+ neighborhood: '邻里圈轮播图',
+ announcementList: '社区公告',
+ activity: '活动列表',
+ nbdMutualAid: '邻里互助',
+ nbdMutual: '邻里互助',
+ mutualComment: '评论列表',
+ workOrder: '工单管理',
+ orderList: '工单列表',
+ orderType: '工单类型',
+ server:'周边服务',
+ serverList: '门店列表',
+ serverType: '门店分类',
+ mettingMgt:'会议室管理',
+ mettingRoom:'会议室列表',
+ mettingYuYue:'预约记录',
+ customer:'用户管理'
}
diff --git a/src/locales/lang/zh-CN/pages.js b/src/locales/lang/zh-CN/pages.js
index 43d9a74..dc26da3 100644
--- a/src/locales/lang/zh-CN/pages.js
+++ b/src/locales/lang/zh-CN/pages.js
@@ -57,7 +57,7 @@ export default {
// role
'pages.system.role.add': '添加角色',
'pages.system.role.edit': '编辑角色',
- 'pages.system.role.delTip': '确定删除该角色吗?',
+ 'pages.system.role.delTip': '确定删除该项吗?',
'pages.system.role.form.code': '编码',
'pages.system.role.form.code.placeholder': '请输入编码',
'pages.system.role.form.code.required': '编码是必填项!',
@@ -78,7 +78,7 @@ export default {
// user
'pages.system.user.add': '添加用户',
'pages.system.user.edit': '编辑用户',
- 'pages.system.user.delTip': '确定删除该用户吗?',
+ 'pages.system.user.delTip': '确定删除该项吗?',
'pages.system.user.form.username': '用户名',
'pages.system.user.form.username.placeholder': '请输入用户名',
'pages.system.user.form.username.required': '用户名是必填项!',
diff --git a/src/router/routes/pages.js b/src/router/routes/pages.js
index 98a3217..96c056b 100644
--- a/src/router/routes/pages.js
+++ b/src/router/routes/pages.js
@@ -1,4 +1,4 @@
-import { TableOutlined,HomeOutlined } from '@ant-design/icons-vue'
+import { TableOutlined, HomeOutlined } from '@ant-design/icons-vue'
export default [
{
@@ -49,4 +49,168 @@ export default [
permission: '*',
},
},
+ {
+ path: 'nbdMutual',
+ name: 'nbdMutual',
+ component: 'RouteViewLayout',
+ meta: {
+ icon: 'icon-cooperation',
+ title: '邻里互助',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ children: [
+ {
+ path: 'nbdMutual/nbdMutualAid',
+ name: 'nbdMutualAid',
+ component: 'pages/nbdMutual/nbdMutualAid/index.vue',
+ meta: {
+ icon: '',
+ title: '邻里互助',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ },
+ // {
+ // path: 'nbdMutual/mutualComment',
+ // name: 'mutualComment',
+ // component: 'pages/nbdMutual/mutualComment/index.vue',
+ // meta: {
+ // icon: 'icon-huodongliebiao-copy',
+ // title: '求助评论',
+ // isMenu: true,
+ // keepAlive: true,
+ // permission: '*',
+ // },
+ // },
+ ],
+ },
+ {
+ path: 'workOrder',
+ name: 'workOrder',
+ component: 'RouteViewLayout',
+ meta: {
+ icon: 'icon-gongdan',
+ title: '工单列表',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ children: [
+ {
+ path: 'workOrder/orderType',
+ name: 'orderType',
+ component: 'pages/workOrder/orderType/index.vue',
+ meta: {
+ icon: '',
+ title: '功能类型',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ },
+ {
+ path: 'workOrder/orderList',
+ name: 'orderList',
+ component: 'pages/workOrder/orderList/index.vue',
+ meta: {
+ icon: '',
+ title: '工单列表',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ },
+ ],
+ },
+ {
+ path: 'server',
+ name: 'server',
+ component: 'RouteViewLayout',
+ meta: {
+ icon: 'icon-zhoubian',
+ title: '周边服务',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ children: [
+ {
+ path: 'server/serverType',
+ name: 'serverType',
+ component: 'pages/server/serverType/index.vue',
+ meta: {
+ icon: '',
+ title: '门店类型',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ },
+ {
+ path: 'server/serverList',
+ name: 'serverList',
+ component: 'pages/server/serverList/index.vue',
+ meta: {
+ icon: '',
+ title: '门店列表',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ },
+ ],
+ },
+ {
+ path: 'mettingMgt',
+ name: 'mettingMgt',
+ component: 'RouteViewLayout',
+ meta: {
+ icon: 'icon-zhoubian',
+ title: '会议室管理',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ children: [
+ {
+ path: 'mettingMgt/mettingRoom',
+ name: 'mettingRoom',
+ component: 'pages/mettingMgt/mettingList/index.vue',
+ meta: {
+ icon: '',
+ title: '会议室',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ },
+ {
+ path: 'mettingMgt/mettingYuYue',
+ name: 'mettingYuYue',
+ component: 'pages/mettingMgt/mettingYuYue/index.vue',
+ meta: {
+ icon: '',
+ title: '会议室预约',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ },
+ ],
+ },
+ {
+ path: 'customer/index',
+ name: 'customer',
+ component: 'pages/user/index.vue',
+ meta: {
+ icon: HomeOutlined,
+ title: '用户管理',
+ isMenu: true,
+ keepAlive: true,
+ permission: '*',
+ },
+ },
]
diff --git a/src/views/pages/activity/components/EditDialog.vue b/src/views/pages/activity/components/EditDialog.vue
index c7bc3fa..c1a3a3e 100644
--- a/src/views/pages/activity/components/EditDialog.vue
+++ b/src/views/pages/activity/components/EditDialog.vue
@@ -1,6 +1,6 @@
+ :after-close="onAfterClose" :cancel-text="cancelText" :ok-text="okText" @ok="handleOk" @cancel="handleCancel" :ok-button-props="{ disabled: formData.status!==2 }">
@@ -12,18 +12,18 @@
-
-
+
+
-
-
-
+
+
+
-
+
-
+
@@ -33,8 +33,8 @@
-
-
+
@@ -56,7 +56,7 @@ import { useI18n } from 'vue-i18n'
import dayjs from 'dayjs'
import GxUpload from '@/components/GxUpload/index.vue'
import { spliceUrl } from "@/utils/util"
-import { enumsStatus } from '@/enums/index'
+import { activatyStatus } from '@/enums/index'
const emit = defineEmits(['ok'])
const { t } = useI18n() // 解构出t方法
const { modal, showModal, hideModal, showLoading, hideLoading } = useModal()
@@ -67,9 +67,9 @@ const okText = ref(t('button.confirm'))
const fileList = ref([])
formRules.value = {
title: [{ required: true, message: '请输入活动名称' }],
- activityTime: [{ required: true, message: '请输入活动时间' }],
+ openAt: [{ required: true, message: '请输入活动时间' }],
cover: [{required: false, message: '请上传图片', trigger: 'change'}],
- backImg: [{ required: false, message: '请上传图片', trigger: 'change' }],
+ images: [{ required: false, message: '请上传图片', trigger: 'change' }],
activityContent:[{ required: true, message: '请输入活动内容' }]
}
@@ -86,7 +86,7 @@ function handleCreate() {
title: '新增活动',
})
// initData()
- formData.value.status = 'enabled'
+ formData.value.status = 1
}
/**
@@ -106,12 +106,15 @@ async function handleEdit(record = {}) {
}
hideSpining()
formData.value = { ...data }
- formData.value.startAt = dayjs(data.startAt)
- formData.value.endAt = dayjs(data.endAt)
- formData.value.endSignupAt = dayjs(data.endSignupAt)
-
if (data.images && data.images.length > 0) {
- formData.value.fileList = data.images.map(item => config('http.apiBasic') + item)
+ formData.value.images = data.images.map(item => config('http.apiBasic') + item)
+ }else{
+ formData.value.images=[]
+ }
+ if(data.cover){
+ formData.value.cover=[config('http.apiBasic')+data.cover]
+ }else{
+ formData.value.cover=[]
}
} catch (error) {
message.error({ content: error.message })
@@ -132,7 +135,7 @@ function handleOk() {
const params = {
...values,
cover: formData.value.cover?spliceUrl(formData.value.cover[0]):'',
- backImg: formData.value.backImg ? formData.value.backImg.map(item => spliceUrl(item)) : ''
+ images: formData.value.images ? formData.value.images.map(item => spliceUrl(item)) : []
}
let result = null
switch (modal.value.type) {
diff --git a/src/views/pages/activity/index.vue b/src/views/pages/activity/index.vue
index 4a85052..4415837 100644
--- a/src/views/pages/activity/index.vue
+++ b/src/views/pages/activity/index.vue
@@ -45,26 +45,44 @@
-
-
+
- 点击查看
+ 点击查看
- {{enumsStatus.getName(record.status)}}
+ {{
+ activatyStatus.getName(record.status)
+ }}
+
+
+ {{ '审核' }}
+
+
+
+
+
+ {{ '开始活动' }}
+
+
+
{{ $t('pages.system.user.edit') }}
-
-
+
+
+
{{ $t('pages.system.delete') }}
-
+
+
+
@@ -72,19 +90,31 @@
-
-
-
- 暂无图片
-
-
-
- {{ content }}
-
-
+
+
+
+
+ 暂无图片
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
@@ -95,11 +125,12 @@ import apis from '@/apis'
import { formatUtcDateTime } from '@/utils/util'
import { config } from '@/config'
import dayjs from 'dayjs'
-import { usePagination } from '@/hooks'
+import { usePagination,useModal } from '@/hooks'
import EditDialog from './components/EditDialog.vue'
import { PlusOutlined, EditOutlined, DeleteOutlined, QrcodeOutlined } from '@ant-design/icons-vue'
import { useI18n } from 'vue-i18n'
-import { enumsStatus } from '@/enums/index.js'
+import { activatyStatus } from '@/enums/index.js'
+import errImg from '@/assets/blankSpace.png'
defineOptions({
name: 'activity',
})
@@ -109,17 +140,20 @@ const imgList = ref([])
const type = ref(1)
const columns = [
- { title: '活动标题', dataIndex: 'title'},
- { title: '活动时间', dataIndex: 'activityTime',align: 'center' },
- { title: '活动内容', dataIndex: 'activityContent',align: 'center' },
{ title: '活动封面', dataIndex: 'cover', align: 'center', width: 100 },
- { title: t('button.action'), key: 'action', fixed: 'right', width: 150, align: 'center' },
+ { title: '活动标题', dataIndex: 'title' },
+ { title: '活动时间', dataIndex: 'openAt', align: 'center' },
+ { title: '活动内容', dataIndex: 'content', align: 'center', width: 100 },
+ { title: '状态', dataIndex: 'status', align: 'center', width: 100 },
+ { title: t('button.action'), key: 'action', fixed: 'right', width: 140, align: 'center' },
]
-
-const { listData, loading, showLoading, hideLoading, paginationState, resetPagination, searchFormData } =
- usePagination()
+const { modal, showModal, hideModal, showLoading:auditShowLoading, hideLoading:auditHideLoading } = useModal()
+const { listData, loading, showLoading, hideLoading, paginationState, resetPagination, searchFormData } =usePagination()
const editDialogRef = ref()
+const currentForm=ref({})
+const auditStatus=ref(2)
+const remark=ref('')
getPageList()
/**
* 获取表格数据
@@ -147,7 +181,51 @@ async function getPageList() {
hideLoading()
}
}
-
+const auditHandleEdit = (params) => {
+ currentForm.value = params
+ showModal()
+}
+const startHandleEdit=async (obj)=>{
+ try {
+ const params = {
+ ...obj,
+ status: 3,
+ }
+ const result = await apis.activity.updateItem(obj.id, params).catch(() => {
+ throw new Error()
+ })
+ if (config('http.code.success') === result?.success) {
+ hideModal()
+ getPageList()
+ message.success('活动已成功')
+ }
+ } catch (error) {
+ message.error(error.message)
+ }
+}
+const handleAuditEdit = async () => {
+ try {
+ auditShowLoading()
+ const params = {
+ ...currentForm.value,
+ status: auditStatus.value,
+ remark: remark.value
+ }
+ console.log(params);
+ const result = await apis.activity.updateItem(currentForm.value.id, params).catch(() => {
+ throw new Error()
+ })
+ auditHideLoading()
+ if (config('http.code.success') === result?.success) {
+ hideModal()
+ getPageList()
+ message.success('审核成功')
+ }
+ } catch (error) {
+ message.error(error.message)
+ auditHideLoading()
+ }
+}
/**
* 删除
*/
diff --git a/src/views/pages/announcementList/components/AddDialog.vue b/src/views/pages/announcementList/components/AddDialog.vue
index 6a63e6a..a1de2b4 100644
--- a/src/views/pages/announcementList/components/AddDialog.vue
+++ b/src/views/pages/announcementList/components/AddDialog.vue
@@ -1,6 +1,6 @@
+ :after-close="onAfterClose" :cancel-text="cancelText" :ok-text="okText" @ok="handleOk" @cancel="handleCancel" :ok-button-props="{ disabled: formData.status!==1 }">
@@ -16,24 +16,29 @@
style="width: 100%;" />
-
+
-
+
-
+
+
+
+
+
+
-
-
+
+
-
-
+
+
@@ -52,7 +57,7 @@ import { useForm, useModal, useSpining } from '@/hooks'
import { message } from 'ant-design-vue'
import { useI18n } from 'vue-i18n'
import dayjs from 'dayjs'
-import { enumsStatus } from '@/enums/index'
+import { announcementStatus } from '@/enums/index'
import {spliceUrl} from '@/utils/util'
const emit = defineEmits(['ok'])
const { t } = useI18n() // 解构出t方法
@@ -65,11 +70,12 @@ const roles = ref([])
const { spining, showSpining, hideSpining } = useSpining()
formRules.value = {
title: { required: true, message: '请输入标题' },
- desc: { required: true, message: '请输入内容' },
+ desc: { required: true, message: '请输入简介' },
+ content: { required: true, message: '请输入内容' },
sequence: { required: true, message: '请选择排序' },
status: { required: true, message: '请选择是否启用' },
createdAt: { required: true, message: '请选择创建时间' },
- img:{required: false, message: '请上传封面'}
+ cover:{required: false, message: '请上传封面'}
}
/**
@@ -80,7 +86,7 @@ function handleCreate() {
type: 'create',
title: '新增',
})
- formData.value.status = 0
+ formData.value.status = 1
}
/**
@@ -98,7 +104,7 @@ async function handleEdit(record = {}) {
hideSpining()
formData.value = { ...data }
formData.value.createdAt = dayjs(data.createdAt)
- formData.value.img=formData.value.img?[config('http.apiBasic')+formData.value.img]:[]
+ formData.value.cover=formData.value.cover?[config('http.apiBasic')+formData.value.cover]:[]
} catch (error) {
message.error(error.message)
}
@@ -109,7 +115,6 @@ async function handleEdit(record = {}) {
* 确定
*/
function handleOk() {
- console.log(formData.value)
formRef.value
.validateFields()
.then(async (values) => {
@@ -118,7 +123,7 @@ function handleOk() {
showLoading()
const params = {
...values,
- img:formData.value.img?spliceUrl(formData.value.img[0]):''
+ cover:formData.value.cover?spliceUrl(formData.value.cover[0]):''
}
console.log(params);
diff --git a/src/views/pages/announcementList/index.vue b/src/views/pages/announcementList/index.vue
index 142909d..9bc021b 100644
--- a/src/views/pages/announcementList/index.vue
+++ b/src/views/pages/announcementList/index.vue
@@ -10,7 +10,10 @@
-
+
+ {{
+ item.label }}
+
@@ -39,11 +42,14 @@
-
-
+
+
- {{ enumsStatus.getName(record.status) }}
+ {{
+ announcementStatus.getName(record.status)
+ }}
{{ dayjs(record.createdAt).format('YYYY-MM-DD') }}
@@ -52,6 +58,12 @@
+
+
+ {{ '审核' }}
+
+
+
{{ '编辑公告' }}
@@ -70,7 +82,18 @@
-
+
+
+
+
+
+
+
+
+
+
@@ -79,10 +102,11 @@ import { message, Modal } from 'ant-design-vue'
import { ref } from 'vue'
import apis from '@/apis'
import { config } from '@/config'
-import { enumsStatus } from '@/enums/index.js'
-import { usePagination } from '@/hooks'
+import { announcementStatus } from '@/enums/index.js'
+import { usePagination,useModal } from '@/hooks'
import AddDialog from './components/AddDialog.vue'
import { PlusOutlined, EditOutlined, DeleteOutlined } from '@ant-design/icons-vue'
+
import { useI18n } from 'vue-i18n'
import dayjs from 'dayjs'
import errImg from '@/assets/blankSpace.png'
@@ -92,20 +116,21 @@ defineOptions({
})
const { t } = useI18n() // 解构出t方法
const columns = [
- { title: '封面', dataIndex: 'img', key: 'img',with:60,align:'center'},
+ { title: '封面', dataIndex: 'cover', key: 'cover', with: 60, align: 'center' },
{ title: '标题', dataIndex: 'title', key: 'title', ellipsis: true },
- { title: '内容', dataIndex: 'desc', ellipsis: true },
+ { title: '简介', dataIndex: 'desc', ellipsis: true },
{ title: '排序', dataIndex: 'sequence', width: 80, align: 'center' },
{ title: '状态', key: 'status', dataIndex: 'status', width: 120, align: 'center' },
{ title: '创建时间', dataIndex: 'createdAt', width: 200, align: 'center' },
- { title: t('button.action'), key: 'action', fixed: 'right', width: 100, align: 'center' },
+ { title: t('button.action'), key: 'action', fixed: 'right', width: 140, align: 'center' },
]
-
-const { listData, loading, showLoading, hideLoading, paginationState, searchFormData, resetPagination } =
- usePagination()
+const { modal, showModal, hideModal, showLoading:auditShowLoading, hideLoading:auditHideLoading } = useModal()
+const { listData, loading, showLoading, hideLoading, paginationState, searchFormData, resetPagination } = usePagination()
// const { resetForm } = useForm()
const addDialogRef = ref()
-
+const currentForm=ref({})
+const auditStatus=ref(2)
+const remark=ref('')
getPageList()
/**
@@ -163,7 +188,33 @@ function handleRemove({ id }) {
},
})
}
-
+const auditHandleEdit = (params) => {
+ currentForm.value = params
+ showModal()
+}
+const handleAuditEdit = async () => {
+ try {
+ auditShowLoading()
+ const params = {
+ ...currentForm.value,
+ status: auditStatus.value,
+ remark: remark.value
+ }
+ console.log(params);
+ const result = await apis.announcement.updateNotices(currentForm.value.id, params).catch(() => {
+ throw new Error()
+ })
+ auditHideLoading()
+ if (config('http.code.success') === result?.success) {
+ hideModal()
+ getPageList()
+ message.success('审核成功')
+ }
+ } catch (error) {
+ message.error(error.message)
+ auditHideLoading()
+ }
+}
/**
* 分页
*/
diff --git a/src/views/pages/homeBanner/components/EditDialog.vue b/src/views/pages/homeBanner/components/EditDialog.vue
index fc822f0..744b5c0 100644
--- a/src/views/pages/homeBanner/components/EditDialog.vue
+++ b/src/views/pages/homeBanner/components/EditDialog.vue
@@ -16,11 +16,11 @@
-
+
-
+
@@ -45,6 +45,7 @@ import { useI18n } from 'vue-i18n'
import dayjs from 'dayjs'
import { createMenu, getMenu, updateMenu } from '@/apis/modules/imgmgt'
import {spliceUrl} from '@/utils/util'
+import { enumsStatus } from '@/enums/index.js'
const emit = defineEmits(['ok'])
const { t } = useI18n() // 解构出t方法
const { modal, showModal, hideModal, showLoading, hideLoading } = useModal()
@@ -72,7 +73,7 @@ function handleCreate() {
// 80对应about
title: '添加',
})
- formData.value.status = 0
+ formData.value.status = 1
}
/**
@@ -106,7 +107,7 @@ function handleOk() {
const params = {
...values,
img: spliceUrl(formData.value?.img[0]),
- type: 'homeBanner' ,
+ scene: 1 ,
}
let result = null
switch (modal.value.type) {
diff --git a/src/views/pages/homeBanner/index.vue b/src/views/pages/homeBanner/index.vue
index 1263c3b..3e0ed5d 100644
--- a/src/views/pages/homeBanner/index.vue
+++ b/src/views/pages/homeBanner/index.vue
@@ -1,5 +1,5 @@
-
+
@@ -41,14 +40,15 @@
+ :pagination="paginationState" :scroll="{ x: 1000 }" @change="onTableChange">
-
+
- {{ enumsStatus.getName(record.status) }}
+ {{ enumsStatus.getName(record.status)
+ }}
@@ -111,8 +111,8 @@ async function getPageList() {
const { success, data, total } = await apis.imgmgt
.getDataList({
pageSize,
- current:current,
- type: 'homeBanner',
+ current: current,
+ scene: 1,
...searchFormData.value,
})
.catch(() => {
diff --git a/src/views/pages/mettingMgt/mettingList/components/EditDialog.vue b/src/views/pages/mettingMgt/mettingList/components/EditDialog.vue
new file mode 100644
index 0000000..25bf70d
--- /dev/null
+++ b/src/views/pages/mettingMgt/mettingList/components/EditDialog.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 人间
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/mettingMgt/mettingList/index.vue b/src/views/pages/mettingMgt/mettingList/index.vue
new file mode 100644
index 0000000..ec7498c
--- /dev/null
+++ b/src/views/pages/mettingMgt/mettingList/index.vue
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+
+
+ 新增会议室
+
+
+
+
+
+ {{
+ workTypeStatus.getName(record.status) }}
+
+
+ 点击查看
+
+
+
+
+ 编辑
+
+
+
+
+
+ 审核
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/mettingMgt/mettingYuYue/components/EditDialog.vue b/src/views/pages/mettingMgt/mettingYuYue/components/EditDialog.vue
new file mode 100644
index 0000000..3ae2f04
--- /dev/null
+++ b/src/views/pages/mettingMgt/mettingYuYue/components/EditDialog.vue
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/mettingMgt/mettingYuYue/index.vue b/src/views/pages/mettingMgt/mettingYuYue/index.vue
new file mode 100644
index 0000000..7c87295
--- /dev/null
+++ b/src/views/pages/mettingMgt/mettingYuYue/index.vue
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+ {{ dayjs(record.startAt).format('YYYY-MM-DD HH:mm:ss') + ' - ' +
+ dayjs(record.endAt).format('YYYY-MM-DD HH:mm:ss')}}
+
+
+
+
+ 审核
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/nbdMutual/mutualComment/components/EditDialog.vue b/src/views/pages/nbdMutual/mutualComment/components/EditDialog.vue
new file mode 100644
index 0000000..5366a9f
--- /dev/null
+++ b/src/views/pages/nbdMutual/mutualComment/components/EditDialog.vue
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/nbdMutualAid/index.vue b/src/views/pages/nbdMutual/mutualComment/index.vue
similarity index 62%
rename from src/views/pages/nbdMutualAid/index.vue
rename to src/views/pages/nbdMutual/mutualComment/index.vue
index 8493a14..75d1b6b 100644
--- a/src/views/pages/nbdMutualAid/index.vue
+++ b/src/views/pages/nbdMutual/mutualComment/index.vue
@@ -1,20 +1,16 @@
-
+
-
-
+
+
-
-
- 全部
- 启用
- 停用
-
+
+
@@ -32,33 +28,22 @@
-
-
-
-
-
- 新增
-
-
+ :pagination="paginationState" :scroll="{ x: 1000 }" @change="onTableChange">
-
-
-
-
- {{ enumsStatus.getName(record.status) }}
+ {{activatyStatus.getName(record.status)}}
+
+
+ {{ dayjs(record.pushAt).format('YYYY-MM-DD HH:mm:ss') }}
-
-
- {{ $t('pages.system.user.edit') }}
-
{{ $t('pages.system.delete') }}
-
+
+
+
@@ -73,26 +58,24 @@
import { message, Modal } from 'ant-design-vue'
import { ref } from 'vue'
import apis from '@/apis'
-import { formatUtcDateTime } from '@/utils/util'
import { config } from '@/config'
-import { statusUserTypeEnum } from '@/enums/system'
import { usePagination } from '@/hooks'
import errImg from '@/assets/blankSpace.png'
import EditDialog from './components/EditDialog.vue'
import { PlusOutlined, EditOutlined, DeleteOutlined } from '@ant-design/icons-vue'
import { useI18n } from 'vue-i18n'
-import { delMenu, getDataList } from '@/apis/modules/imgmgt'
-import { enumsStatus } from '@/enums/index.js'
+import { activatyStatus } from '@/enums/index.js'
defineOptions({
- name: 'nbdMa',
+ name: 'mutualComment',
})
const { t } = useI18n() // 解构出t方法
const columns = [
- { title: '图片', dataIndex: 'img', width: 100, align: 'center' },
- { title: '名称', dataIndex: 'title', key: 'name' },
- { title: '状态', dataIndex: 'status', width: 120, align: 'center' },
- { title: '顺序', dataIndex: 'sequence', width: 100, align: 'center' },
- { title: t('button.action'), key: 'action', fixed: 'right', width: 100, align: 'center' },
+ { title: '评论人名称', dataIndex: 'commentUser', key: 'commentUser' },
+ { title: '评论内容', dataIndex: 'commentContent' },
+ { title: '发布时间', dataIndex: 'pushAt', width: 120, align: 'center' },
+ { title: '被评论人', dataIndex: 'userName', align: 'center' },
+ { title: '被评论帖子', dataIndex: 'title', width: 120, align: 'center' },
+ { title: t('button.action'), key: 'action', fixed: 'right', width: 100, align: 'center' },
]
const { listData, loading, showLoading, hideLoading, paginationState, resetPagination, searchFormData } = usePagination()
@@ -108,11 +91,10 @@ async function getPageList() {
try {
showLoading()
const { pageSize, current } = paginationState
- const { success, data, total } = await apis.imgmgt
+ const { success, data, total } = await apis.mutualComment
.getDataList({
pageSize,
- current:current,
- type: 'neighborhoodBanner',
+ current: current,
...searchFormData.value,
})
.catch(() => {
@@ -141,7 +123,7 @@ function handleDelete({ id }) {
return new Promise((resolve, reject) => {
; (async () => {
try {
- const { success } = await apis.imgmgt.delMenu(id).catch(() => {
+ const { success } = await apis.mutualComment.delMenu(id).catch(() => {
throw new Error()
})
if (config('http.code.success') === success) {
diff --git a/src/views/pages/nbdMutual/nbdMutualAid/components/CommentItem.js b/src/views/pages/nbdMutual/nbdMutualAid/components/CommentItem.js
new file mode 100644
index 0000000..a911280
--- /dev/null
+++ b/src/views/pages/nbdMutual/nbdMutualAid/components/CommentItem.js
@@ -0,0 +1,59 @@
+// CommentItem.js
+import { h } from 'vue'
+
+export const CommentItem = {
+ name: 'CommentItem',
+ props: {
+ comment: {
+ type: Object,
+ required: true,
+ },
+ // 可选:添加深度限制防止无限递归
+ depth: {
+ type: Number,
+ default: 0,
+ },
+ },
+ setup(props) {
+ // 日期格式化函数
+ const formatDate = (dateString) => {
+ return new Date(dateString).toLocaleString()
+ }
+
+ // 返回渲染函数
+ return () => {
+ const { comment, depth } = props
+ // 创建子评论元素(递归部分)
+ let childComments = null
+ if (comment.children?.length && depth < 10) {
+ // 限制最大深度为10层
+ childComments = h(
+ 'div',
+ { class: 'replies' },
+ comment.children.map((child) =>
+ h(CommentItem, {
+ comment: child,
+ key: child.id,
+ depth: depth + 1, // 传递增加后的深度
+ })
+ )
+ )
+ }
+
+ // 构建主组件结构
+ return h('div', { class: 'comment' }, [
+ // 评论头部
+ h('div', { class: 'comment-header' }, [
+ h('span', { class: 'username' }, comment.pusherName),
+ h('span', { class: 'time' }, formatDate(comment.createdAt)),
+ ]),
+
+ // 评论内容
+ h('div', { class: 'comment-content' }, comment.content),
+
+ // 子评论容器
+ childComments,
+ ])
+ }
+ },
+}
diff --git a/src/views/pages/nbdMutual/nbdMutualAid/components/EditDialog.vue b/src/views/pages/nbdMutual/nbdMutualAid/components/EditDialog.vue
new file mode 100644
index 0000000..6d168e6
--- /dev/null
+++ b/src/views/pages/nbdMutual/nbdMutualAid/components/EditDialog.vue
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/nbdMutual/nbdMutualAid/index.vue b/src/views/pages/nbdMutual/nbdMutualAid/index.vue
new file mode 100644
index 0000000..e1d1bb7
--- /dev/null
+++ b/src/views/pages/nbdMutual/nbdMutualAid/index.vue
@@ -0,0 +1,307 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ item.label }}
+
+
+
+
+
+ {{ $t('button.reset') }}
+
+ {{ $t('button.search') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ nbdMutualStatus.getName(record.status)
+ }}
+
+
+ {{ dayjs(record.createdAt).format('YYYY-MM-DD HH:mm:ss') }}
+
+
+
+ {{ record.title }}
+
+
+
+
+ {{ record.content }}
+
+
+
+
+ {{ record.remark }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 通过
+ 不通过
+
+
+
+
+
+
+
+
+
+
+ {{ nbdMutualAidInfo.content }}
+
+
+
+ 暂无记录...
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/nbdMutualAid/components/EditDialog.vue b/src/views/pages/nbdMutualAid/components/EditDialog.vue
deleted file mode 100644
index 46273e4..0000000
--- a/src/views/pages/nbdMutualAid/components/EditDialog.vue
+++ /dev/null
@@ -1,163 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/pages/neighborhood/components/EditDialog.vue b/src/views/pages/neighborhood/components/EditDialog.vue
index 46273e4..3fa5fa9 100644
--- a/src/views/pages/neighborhood/components/EditDialog.vue
+++ b/src/views/pages/neighborhood/components/EditDialog.vue
@@ -1,35 +1,35 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ :after-close="onAfterClose" :cancel-text="cancelText" :ok-text="okText" @ok="handleOk" @cancel="handleCancel">
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -43,8 +43,8 @@ import { useForm, useModal, useSpining } from '@/hooks'
import { message } from 'ant-design-vue'
import { useI18n } from 'vue-i18n'
import dayjs from 'dayjs'
-import { createMenu, getMenu, updateMenu } from '@/apis/modules/imgmgt'
-import {spliceUrl} from '@/utils/util'
+import { enumsStatus } from '@/enums/index.js'
+import { spliceUrl } from '@/utils/util'
const emit = defineEmits(['ok'])
const { t } = useI18n() // 解构出t方法
const { modal, showModal, hideModal, showLoading, hideLoading } = useModal()
@@ -72,7 +72,7 @@ function handleCreate() {
// 80对应about
title: '添加',
})
- formData.value.status = 0
+ formData.value.status = 1
}
/**
@@ -91,7 +91,7 @@ async function handleEdit(record = {}) {
}
hideSpining()
formData.value = { ...data }
- formData.value.img=[config('http.apiBasic')+data.img]
+ formData.value.img = [config('http.apiBasic') + data.img]
}
/**
@@ -106,7 +106,7 @@ function handleOk() {
const params = {
...values,
img: spliceUrl(formData.value?.img[0]),
- type: 'neighborhoodBanner' ,
+ scene: 2,
}
let result = null
switch (modal.value.type) {
@@ -142,7 +142,7 @@ function handleOk() {
* 取消
*/
function handleCancel() {
- formData.value.img=['']
+ formData.value.img = ['']
hideModal()
}
diff --git a/src/views/pages/neighborhood/index.vue b/src/views/pages/neighborhood/index.vue
index 74cf1f8..2180599 100644
--- a/src/views/pages/neighborhood/index.vue
+++ b/src/views/pages/neighborhood/index.vue
@@ -1,19 +1,17 @@
-
+
@@ -112,7 +110,7 @@ async function getPageList() {
.getDataList({
pageSize,
current:current,
- type: 'neighborhoodBanner',
+ scene: 2,
...searchFormData.value,
})
.catch(() => {
diff --git a/src/views/pages/server/serverList/components/EditDialog.vue b/src/views/pages/server/serverList/components/EditDialog.vue
new file mode 100644
index 0000000..97704c7
--- /dev/null
+++ b/src/views/pages/server/serverList/components/EditDialog.vue
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ item.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/server/serverList/index.vue b/src/views/pages/server/serverList/index.vue
new file mode 100644
index 0000000..ed64dce
--- /dev/null
+++ b/src/views/pages/server/serverList/index.vue
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+
+ 新增门店
+
+
+
+
+
+ {{ enumsStatus.getName(record.status)
+ }}
+
+
+
+
+ 编辑
+
+
+
+ 撤销
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/server/serverType/components/EditDialog.vue b/src/views/pages/server/serverType/components/EditDialog.vue
new file mode 100644
index 0000000..2b98fe7
--- /dev/null
+++ b/src/views/pages/server/serverType/components/EditDialog.vue
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/server/serverType/index.vue b/src/views/pages/server/serverType/index.vue
new file mode 100644
index 0000000..ecb320d
--- /dev/null
+++ b/src/views/pages/server/serverType/index.vue
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+ 新增分类
+
+
+
+
+
+
+
+
+ {{ orderStatus.getName(record.status)}}
+
+
+
+
+ 编辑分类
+
+
+
+ {{ $t('pages.system.delete') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/user/index.vue b/src/views/pages/user/index.vue
new file mode 100644
index 0000000..9ef458d
--- /dev/null
+++ b/src/views/pages/user/index.vue
@@ -0,0 +1,232 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ userStatus.getName(record.status)
+ }}
+
+
+ {{ dayjs(record.createdAt).format('YYYY-MM-DD') }}
+
+
+
+
+
+ {{ '编辑' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/workOrder/orderList/components/EditDialog.vue b/src/views/pages/workOrder/orderList/components/EditDialog.vue
new file mode 100644
index 0000000..3ae2f04
--- /dev/null
+++ b/src/views/pages/workOrder/orderList/components/EditDialog.vue
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/workOrder/orderList/index.vue b/src/views/pages/workOrder/orderList/index.vue
new file mode 100644
index 0000000..e639050
--- /dev/null
+++ b/src/views/pages/workOrder/orderList/index.vue
@@ -0,0 +1,230 @@
+
+
+
+
+
+
+
+ 点击查看
+
+
+ {{
+ orderStatus.getName(record.status) }}
+
+
+
+
+ {{ '审核' }}
+
+
+
+
+
+ 撤销
+
+
+
+
+
+
+
+
+
+
+
+
+ 通过
+ 不通过
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 暂无
+
+
+
+
+
+
+ 暂无
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/workOrder/orderType/components/EditDialog.vue b/src/views/pages/workOrder/orderType/components/EditDialog.vue
new file mode 100644
index 0000000..61eecb7
--- /dev/null
+++ b/src/views/pages/workOrder/orderType/components/EditDialog.vue
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/pages/workOrder/orderType/index.vue b/src/views/pages/workOrder/orderType/index.vue
new file mode 100644
index 0000000..4194d88
--- /dev/null
+++ b/src/views/pages/workOrder/orderType/index.vue
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+ 新增分类
+
+
+
+
+
+ {{
+ workTypeStatus.getName(record.status) }}
+
+
+
+
+ 编辑分类
+
+
+
+
+
+ 审核
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue
index e47c7af..d3d32cd 100644
--- a/src/views/system/menu/index.vue
+++ b/src/views/system/menu/index.vue
@@ -239,7 +239,6 @@ function handleDelete({ id }) {
* 编辑完成
*/
async function onOk() {
- message.success(t('component.message.success.delete'))
await getMenuList()
}
diff --git a/yarn.lock b/yarn.lock
index 912dbb5..53954f2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -138,6 +138,11 @@
"@algolia/logger-common" "4.19.1"
"@algolia/requester-common" "4.19.1"
+"@amap/amap-jsapi-loader@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.npmmirror.com/@amap/amap-jsapi-loader/-/amap-jsapi-loader-1.0.1.tgz"
+ integrity sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==
+
"@ant-design/colors@^6.0.0":
version "6.0.0"
resolved "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz"