Merge branch 'main' of https://gitee.com/izory/ZRAdmin-vue
This commit is contained in:
commit
2a188e5076
12
package.json
12
package.json
@ -23,7 +23,7 @@
|
|||||||
"axios": "^0.27.2",
|
"axios": "^0.27.2",
|
||||||
"countup.js": "^2.1.0",
|
"countup.js": "^2.1.0",
|
||||||
"echarts": "5.2.2",
|
"echarts": "5.2.2",
|
||||||
"element-plus": "^2.3.2",
|
"element-plus": "^2.3.6",
|
||||||
"file-saver": "2.0.5",
|
"file-saver": "2.0.5",
|
||||||
"fuse.js": "6.4.6",
|
"fuse.js": "6.4.6",
|
||||||
"highlight.js": "^11.5.1",
|
"highlight.js": "^11.5.1",
|
||||||
@ -35,18 +35,18 @@
|
|||||||
"pinia": "^2.0.33",
|
"pinia": "^2.0.33",
|
||||||
"qs": "^6.11.0",
|
"qs": "^6.11.0",
|
||||||
"sortablejs": "^1.15.0",
|
"sortablejs": "^1.15.0",
|
||||||
"vue": "^3.2.47",
|
"vue": "^3.3.4",
|
||||||
"vue-clipboard3": "^2.0.0",
|
"vue-clipboard3": "^2.0.0",
|
||||||
"vue-cropper": "1.0.2",
|
"vue-cropper": "1.0.2",
|
||||||
"vue-i18n": "^9.2.2",
|
"vue-i18n": "^9.2.2",
|
||||||
"vue-router": "^4.1.6"
|
"vue-router": "^4.2.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vitejs/plugin-vue": "^4.1.0",
|
"@vitejs/plugin-vue": "^4.2.3",
|
||||||
"@vue/compiler-sfc": "^3.2.47",
|
"@vue/compiler-sfc": "^3.3.4",
|
||||||
"sass": "1.45.0",
|
"sass": "1.45.0",
|
||||||
"unplugin-auto-import": "0.5.3",
|
"unplugin-auto-import": "0.5.3",
|
||||||
"vite": "^4.2.1",
|
"vite": "^4.3.9",
|
||||||
"vite-plugin-compression": "^0.3.6",
|
"vite-plugin-compression": "^0.3.6",
|
||||||
"vite-plugin-svg-icons": "1.0.5",
|
"vite-plugin-svg-icons": "1.0.5",
|
||||||
"vite-plugin-vue-setup-extend": "^0.4.0"
|
"vite-plugin-vue-setup-extend": "^0.4.0"
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-image
|
<el-image
|
||||||
:src="`${realSrc}`"
|
:src="`${realSrc}`"
|
||||||
fit="cover"
|
fit="contain"
|
||||||
|
preview-teleported
|
||||||
|
:hide-on-click-modal="true"
|
||||||
|
lazy
|
||||||
:style="`width:${realWidth};height:${realHeight};`"
|
:style="`width:${realWidth};height:${realHeight};`"
|
||||||
:preview-src-list="realSrcList"
|
:preview-src-list="realSrcList">
|
||||||
>
|
|
||||||
<template #error>
|
<template #error>
|
||||||
<div class="image-slot">
|
<div class="image-slot">
|
||||||
<el-icon><picture-filled /></el-icon>
|
<el-icon><picture-filled /></el-icon>
|
||||||
@ -14,50 +16,58 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { isExternal } from "@/utils/validate";
|
import { isExternal, isArray } from '@/utils/validate'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
src: {
|
src: {
|
||||||
type: String,
|
type: [String, null],
|
||||||
required: true
|
required: true,
|
||||||
|
default: ''
|
||||||
},
|
},
|
||||||
width: {
|
width: {
|
||||||
type: [Number, String],
|
type: [Number, String],
|
||||||
default: ""
|
default: ''
|
||||||
},
|
},
|
||||||
height: {
|
height: {
|
||||||
type: [Number, String],
|
type: [Number, String],
|
||||||
default: ""
|
default: ''
|
||||||
|
},
|
||||||
|
split: {
|
||||||
|
type: String,
|
||||||
|
default: ','
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
|
|
||||||
const realSrc = computed(() => {
|
const realSrc = computed(() => {
|
||||||
let real_src = props.src.split(",")[0];
|
if (props.src == null || props.src == undefined) return
|
||||||
if (isExternal(real_src)) {
|
let real_src = props.src.split(props.split)
|
||||||
return real_src;
|
|
||||||
|
if (real_src && isArray(real_src)) {
|
||||||
|
var url0 = real_src[0]
|
||||||
|
if (isExternal(url0)) {
|
||||||
|
return url0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return import.meta.env.VITE_APP_BASE_API + real_src;
|
|
||||||
});
|
return import.meta.env.VITE_APP_BASE_API + real_src
|
||||||
|
})
|
||||||
|
|
||||||
const realSrcList = computed(() => {
|
const realSrcList = computed(() => {
|
||||||
let real_src_list = props.src.split(",");
|
if (props.src == null || props.src == undefined) return
|
||||||
let srcList = [];
|
let real_src_list = props.src.split(props.split)
|
||||||
real_src_list.forEach(item => {
|
let srcList = []
|
||||||
|
real_src_list.forEach((item) => {
|
||||||
if (isExternal(item)) {
|
if (isExternal(item)) {
|
||||||
return srcList.push(item);
|
return srcList.push(item)
|
||||||
}
|
}
|
||||||
return srcList.push(import.meta.env.VITE_APP_BASE_API + item);
|
return srcList.push(import.meta.env.VITE_APP_BASE_API + item)
|
||||||
});
|
})
|
||||||
return srcList;
|
return srcList
|
||||||
});
|
})
|
||||||
|
|
||||||
const realWidth = computed(() =>
|
const realWidth = computed(() => (typeof props.width == 'string' ? props.width : `${props.width}px`))
|
||||||
typeof props.width == "string" ? props.width : `${props.width}px`
|
|
||||||
);
|
|
||||||
|
|
||||||
const realHeight = computed(() =>
|
const realHeight = computed(() => (typeof props.height == 'string' ? props.height : `${props.height}px`))
|
||||||
typeof props.height == "string" ? props.height : `${props.height}px`
|
|
||||||
);
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<el-dropdown @command="handleCommand" class="right-menu-item avatar-container" trigger="hover">
|
<el-dropdown @command="handleCommand" class="right-menu-item avatar-container" trigger="hover">
|
||||||
<span class="avatar-wrapper">
|
<span class="avatar-wrapper">
|
||||||
<img :src="userStore.avatar" class="user-avatar" />
|
<el-avatar :size="25" shape="circle" class="user-avatar" :src="userStore.avatar" />
|
||||||
<span class="name">{{ userStore.name }}</span>
|
<span class="name">{{ userStore.name }}</span>
|
||||||
<el-icon><ArrowDown /></el-icon>
|
<el-icon><ArrowDown /></el-icon>
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@ -282,3 +282,14 @@ export function color16() {
|
|||||||
const color = `#${r.toString(16)}${g.toString(16)}${b.toString(16)}`
|
const color = `#${r.toString(16)}${g.toString(16)}${b.toString(16)}`
|
||||||
return color
|
return color
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回星期几
|
||||||
|
* @param {*} num
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function getWeek(num = 0) {
|
||||||
|
var datas = dayjs().add(num, 'day').day()
|
||||||
|
var week = ['日', '一', '二', '三', '四', '五', '六']
|
||||||
|
return '星期' + week[datas]
|
||||||
|
}
|
||||||
|
|||||||
@ -11,8 +11,9 @@
|
|||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<el-empty :image-size="80" v-if="commonRouters && commonRouters.length <= 0" />
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<el-empty :image-size="80" v-if="commonRouters && commonRouters.length <= 0" />
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import usePermissionStore from '@/store/modules/permission'
|
import usePermissionStore from '@/store/modules/permission'
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-table :data="dataList">
|
<el-table :data="dataList">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<!-- <el-table-column type="selection" width="55" align="center" /> -->
|
||||||
<el-table-column label="字典编码" align="center" prop="dictCode" />
|
<el-table-column label="字典编码" align="center" prop="dictCode" />
|
||||||
<el-table-column label="字典标签" align="center" prop="dictLabel">
|
<el-table-column label="字典标签" align="center" prop="dictLabel">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
@ -63,13 +63,11 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="样式属性" prop="cssClass">
|
<el-form-item label="样式属性" prop="cssClass">
|
||||||
<!-- <el-input v-model="form.cssClass" placeholder="请输入样式属性" /> -->
|
<!-- <el-input v-model="form.cssClass" placeholder="请输入样式属性" /> -->
|
||||||
<el-select v-model="form.cssClass" clearable="">
|
<el-select v-model="form.cssClass" allow-create filterable clearable="">
|
||||||
<el-option
|
<el-option v-for="dict in cssClassOptions" :class="dict.value" :key="dict.value" :label="dict.label" :value="dict.value">
|
||||||
v-for="dict in cssClassOptions"
|
<span style="float: left" :class="dict.value">{{ dict.label }}</span>
|
||||||
:class="dict.value"
|
<span style="float: right">{{ dict.value }}</span>
|
||||||
:key="dict.value"
|
</el-option>
|
||||||
:label="dict.label + '(' + dict.value + ')'"
|
|
||||||
:value="dict.value"></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="显示排序" prop="dictSort">
|
<el-form-item label="显示排序" prop="dictSort">
|
||||||
@ -77,11 +75,8 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="回显样式" prop="listClass">
|
<el-form-item label="回显样式" prop="listClass">
|
||||||
<el-select v-model="form.listClass">
|
<el-select v-model="form.listClass">
|
||||||
<el-option
|
<el-option v-for="item in listClassOptions" :key="item.value" :label="item.label + '(' + item.value + ')'" :value="item.value">
|
||||||
v-for="item in listClassOptions"
|
</el-option>
|
||||||
:key="item.value"
|
|
||||||
:label="item.label + '(' + item.value + ')'"
|
|
||||||
:value="item.value"></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态" prop="status">
|
<el-form-item label="状态" prop="status">
|
||||||
|
|||||||
@ -2,11 +2,11 @@
|
|||||||
<div class="home">
|
<div class="home">
|
||||||
<!-- 用户信息 -->
|
<!-- 用户信息 -->
|
||||||
<el-row :gutter="15">
|
<el-row :gutter="15">
|
||||||
<el-col :md="24" :lg="24" :xl="24" class="mb10">
|
<el-col :md="24" :lg="18" :xl="24" class="mb10">
|
||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<div class="user-item">
|
<div class="user-item">
|
||||||
<div class="user-item-left">
|
<div class="user-item-left">
|
||||||
<img :src="userInfo.avatar" />
|
<el-avatar :size="60" shape="circle" :src="userInfo.avatar" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="user-item-right">
|
<div class="user-item-right">
|
||||||
@ -24,6 +24,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :lg="6" class="mb10">
|
||||||
|
<el-card style="height: 100%">
|
||||||
|
<div class="text-warning mb10">{{ currentTime }} {{ weekName }}</div>
|
||||||
|
<div>上次登录时间:{{ userInfo.loginDate }}</div>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row :gutter="15">
|
<el-row :gutter="15">
|
||||||
@ -88,6 +94,7 @@ import BarChart from './dashboard/BarChart'
|
|||||||
import CommonMenu from './components/CommonMenu'
|
import CommonMenu from './components/CommonMenu'
|
||||||
|
|
||||||
import useUserStore from '@/store/modules/user'
|
import useUserStore from '@/store/modules/user'
|
||||||
|
import { getWeek } from '@/utils/ruoyi'
|
||||||
const showEdit = ref(false)
|
const showEdit = ref(false)
|
||||||
const data = {
|
const data = {
|
||||||
newVisitis: {
|
newVisitis: {
|
||||||
@ -112,8 +119,9 @@ const userInfo = computed(() => {
|
|||||||
return useUserStore().userInfo
|
return useUserStore().userInfo
|
||||||
})
|
})
|
||||||
const currentTime = computed(() => {
|
const currentTime = computed(() => {
|
||||||
return proxy.parseTime(new Date())
|
return proxy.parseTime(new Date(), 'YYYY-MM-DD')
|
||||||
})
|
})
|
||||||
|
const weekName = getWeek()
|
||||||
|
|
||||||
let lineChartData = reactive([])
|
let lineChartData = reactive([])
|
||||||
const dataType = ref(null)
|
const dataType = ref(null)
|
||||||
@ -143,13 +151,8 @@ function handleAdd() {
|
|||||||
.user-item-left {
|
.user-item-left {
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
border-radius: 50%;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
img {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
.user-item-right {
|
.user-item-right {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
|||||||
@ -49,7 +49,7 @@
|
|||||||
<el-table-column prop="fmt_type" label="编辑器类型" width="100"> </el-table-column>
|
<el-table-column prop="fmt_type" label="编辑器类型" width="100"> </el-table-column>
|
||||||
<el-table-column prop="tags" label="标签" width="100" :show-overflow-tooltip="true"> </el-table-column>
|
<el-table-column prop="tags" label="标签" width="100" :show-overflow-tooltip="true"> </el-table-column>
|
||||||
<el-table-column prop="hits" label="点击量" width="80" align="center"> </el-table-column>
|
<el-table-column prop="hits" label="点击量" width="80" align="center"> </el-table-column>
|
||||||
<el-table-column prop="content" label="文章内容" :show-overflow-tooltip="true"> </el-table-column>
|
<!-- <el-table-column prop="content" label="文章内容" :show-overflow-tooltip="true"> </el-table-column> -->
|
||||||
<el-table-column sortable prop="status" align="center" label="状态" width="90">
|
<el-table-column sortable prop="status" align="center" label="状态" width="90">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-tag :type="scope.row.status == '2' ? 'danger' : 'success'" disable-transitions
|
<el-tag :type="scope.row.status == '2' ? 'danger' : 'success'" disable-transitions
|
||||||
|
|||||||
@ -3,49 +3,62 @@
|
|||||||
<el-row :gutter="24">
|
<el-row :gutter="24">
|
||||||
<!-- :model属性用于表单验证使用 比如下面的el-form-item 的 prop属性用于对表单值进行验证操作 -->
|
<!-- :model属性用于表单验证使用 比如下面的el-form-item 的 prop属性用于对表单值进行验证操作 -->
|
||||||
<el-form :model="form" ref="formRef" label-width="100px" :rules="rules" @submit.prevent>
|
<el-form :model="form" ref="formRef" label-width="100px" :rules="rules" @submit.prevent>
|
||||||
<el-form-item label="文章标题" prop="title">
|
<el-row :gutter="20">
|
||||||
<el-input v-model="form.title" placeholder="请输入文章标题(必须)" />
|
<el-col :lg="12">
|
||||||
</el-form-item>
|
<el-form-item label="文章标题" prop="title">
|
||||||
<el-form-item label="文章分类" prop="categoryId">
|
<el-input v-model="form.title" placeholder="请输入文章标题(必须)" />
|
||||||
<el-cascader
|
</el-form-item>
|
||||||
class="w100"
|
</el-col>
|
||||||
:options="categoryOptions"
|
|
||||||
:props="{ checkStrictly: true, value: 'categoryId', label: 'name', emitPath: false }"
|
|
||||||
placeholder="请选择文章分类"
|
|
||||||
clearable
|
|
||||||
v-model="form.categoryId" />
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="文章标签">
|
<el-col :lg="12">
|
||||||
<el-tag v-for="tag in form.dynamicTags" :key="tag" class="mr10" closable :disable-transitions="false" @close="handleCloseTag(tag)">
|
<el-form-item label="文章分类" prop="categoryId">
|
||||||
{{ tag }}
|
<el-cascader
|
||||||
</el-tag>
|
class="w100"
|
||||||
<el-input
|
:options="categoryOptions"
|
||||||
v-if="inputVisible"
|
:props="{ checkStrictly: true, value: 'categoryId', label: 'name', emitPath: false }"
|
||||||
ref="inputRef"
|
placeholder="请选择文章分类"
|
||||||
v-model="inputValue"
|
clearable
|
||||||
class="w20"
|
v-model="form.categoryId" />
|
||||||
@keyup.enter="handleInputConfirm"
|
</el-form-item>
|
||||||
@blur="handleInputConfirm" />
|
</el-col>
|
||||||
|
|
||||||
<el-button v-else class="button-new-tag" size="small" @click="showInput">+ 文章标签</el-button>
|
<el-col :lg="12">
|
||||||
</el-form-item>
|
<el-form-item label="是否公开">
|
||||||
<el-form-item label="是否公开">
|
<el-switch v-model="form.isPublic" inline-prompt :active-value="1" :in-active-value="0" active-text="是" inactive-text="否" />
|
||||||
<el-switch v-model="form.isPublic" inline-prompt :active-value="1" :in-active-value="0" active-text="是" inactive-text="否" />
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
<el-form-item label="文章封面">
|
|
||||||
<UploadImage ref="uploadRef" v-model="form.coverUrl" :limit="1" :fileSize="15" :drag="true" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item prop="content" label="文章内容">
|
|
||||||
<MdEditor v-model="form.content" :onUploadImg="onUploadImg" />
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-col :lg="24">
|
<el-col :lg="12">
|
||||||
<el-form-item style="text-align: right">
|
<el-form-item label="文章标签">
|
||||||
<el-button @click="handlePublish('1')">发布文章</el-button>
|
<el-tag v-for="tag in form.dynamicTags" :key="tag" class="mr10" closable :disable-transitions="false" @close="handleCloseTag(tag)">
|
||||||
<el-button type="success" @click="handlePublish('2')">存为草稿</el-button>
|
{{ tag }}
|
||||||
|
</el-tag>
|
||||||
|
<el-input
|
||||||
|
v-if="inputVisible"
|
||||||
|
ref="inputRef"
|
||||||
|
v-model="inputValue"
|
||||||
|
class="w20"
|
||||||
|
@keyup.enter="handleInputConfirm"
|
||||||
|
@blur="handleInputConfirm" />
|
||||||
|
|
||||||
|
<el-button v-else class="button-new-tag" size="small" @click="showInput">+ 文章标签</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-form-item label="文章封面">
|
||||||
|
<UploadImage ref="uploadRef" v-model="form.coverUrl" :limit="1" :fileSize="15" :drag="true" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
<el-form-item prop="content" label="文章内容">
|
||||||
|
<MdEditor v-model="form.content" :onUploadImg="onUploadImg" />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-col :lg="24">
|
||||||
|
<el-form-item style="text-align: right">
|
||||||
|
<el-button type="success" @click="handlePublish('1')">发布文章</el-button>
|
||||||
|
<el-button @click="handlePublish('2')">存为草稿</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -52,7 +52,7 @@
|
|||||||
<el-table :data="typeList" v-loading="loading" border @selection-change="handleSelectionChange">
|
<el-table :data="typeList" v-loading="loading" border @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label="字典编号" align="center" prop="dictId" width="100" sortable />
|
<el-table-column label="字典编号" align="center" prop="dictId" width="100" sortable />
|
||||||
<el-table-column label="字典类型" align="center" :show-overflow-tooltip="true">
|
<el-table-column label="字典类型" :show-overflow-tooltip="true">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-link type="primary" @click="showDictData(scope.row)">{{ scope.row.dictType }}</el-link>
|
<el-link type="primary" @click="showDictData(scope.row)">{{ scope.row.dictType }}</el-link>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -58,9 +58,9 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button size="small" text icon="bell" @click="handleNotice(scope.row)" v-hasPermi="['system:notice:edit']"> 通知</el-button>
|
<el-button text icon="bell" @click="handleNotice(scope.row)" v-hasPermi="['system:notice:edit']"> 通知</el-button>
|
||||||
<el-button size="small" text icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:notice:edit']"> 修改</el-button>
|
<el-button text icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:notice:edit']"> 修改</el-button>
|
||||||
<el-button size="small" text icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:notice:remove']"> 删除</el-button>
|
<el-button text icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:notice:remove']"> 删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -71,22 +71,25 @@
|
|||||||
<el-dialog :title="title" v-model="open" width="780px" append-to-body>
|
<el-dialog :title="title" v-model="open" width="780px" append-to-body>
|
||||||
<el-form ref="noticeRef" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="noticeRef" :model="form" :rules="rules" label-width="80px">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :lg="12">
|
<el-col :lg="24">
|
||||||
<el-form-item label="公告标题" prop="noticeTitle">
|
<el-form-item label="公告标题" prop="noticeTitle">
|
||||||
<el-input v-model="form.noticeTitle" placeholder="请输入公告标题" />
|
<el-input v-model="form.noticeTitle" placeholder="请输入公告标题" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :lg="12">
|
<el-col :lg="12">
|
||||||
<el-form-item label="公告类型" prop="noticeType">
|
<el-form-item label="公告类型" prop="noticeType">
|
||||||
<el-select v-model="form.noticeType" placeholder="请选择公告类型">
|
<!-- <el-select v-model="form.noticeType" placeholder="请选择公告类型">
|
||||||
<el-option v-for="dict in typeOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue"></el-option>
|
<el-option v-for="dict in typeOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue"></el-option>
|
||||||
</el-select>
|
</el-select> -->
|
||||||
|
<el-radio-group v-model="form.noticeType">
|
||||||
|
<el-radio v-for="dict in typeOptions" :key="dict.dictValue" :label="parseInt(dict.dictValue)">{{ dict.dictLabel }}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :lg="24">
|
<el-col :lg="12">
|
||||||
<el-form-item label="状态">
|
<el-form-item label="状态">
|
||||||
<el-radio-group v-model="form.status">
|
<el-radio-group v-model="form.status">
|
||||||
<el-radio v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictValue">{{ dict.dictLabel }}</el-radio>
|
<el-radio v-for="dict in statusOptions" :key="dict.dictValue" :label="parseInt(dict.dictValue)">{{ dict.dictLabel }}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -167,9 +170,9 @@ function reset() {
|
|||||||
form.value = {
|
form.value = {
|
||||||
noticeId: undefined,
|
noticeId: undefined,
|
||||||
noticeTitle: undefined,
|
noticeTitle: undefined,
|
||||||
noticeType: undefined,
|
noticeType: 1,
|
||||||
noticeContent: undefined,
|
noticeContent: undefined,
|
||||||
status: '0'
|
status: 0
|
||||||
}
|
}
|
||||||
proxy.resetForm('noticeRef')
|
proxy.resetForm('noticeRef')
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="user-info-head" @click="editCropper()">
|
<div class="user-info-head" @click="editCropper()">
|
||||||
<img :src="options.img" title="点击上传头像" class="img-circle img-lg" />
|
<!-- <img :src="options.img" title="点击上传头像" class="img-circle img-lg" /> -->
|
||||||
|
<el-avatar shape="circle" :size="120" :src="options.img" />
|
||||||
</div>
|
</div>
|
||||||
<el-dialog :title="title" v-model="open" width="800px" append-to-body @opened="modalOpened" @close="closeDialog">
|
<el-dialog :title="title" v-model="open" width="800px" append-to-body @opened="modalOpened" @close="closeDialog">
|
||||||
<el-row>
|
<el-row>
|
||||||
@ -62,12 +63,12 @@ import useUserStore from '@/store/modules/user'
|
|||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
VueCropper,
|
VueCropper,
|
||||||
uploadAvatar,
|
uploadAvatar
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
user: {
|
user: {
|
||||||
type: Object,
|
type: Object
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const useStore = useUserStore()
|
const useStore = useUserStore()
|
||||||
@ -84,7 +85,7 @@ export default {
|
|||||||
autoCropWidth: 200, // 默认生成截图框宽度
|
autoCropWidth: 200, // 默认生成截图框宽度
|
||||||
autoCropHeight: 200, // 默认生成截图框高度
|
autoCropHeight: 200, // 默认生成截图框高度
|
||||||
fixedBox: true, // 固定截图框大小 不允许改变
|
fixedBox: true, // 固定截图框大小 不允许改变
|
||||||
previews: {}, //预览数据
|
previews: {} //预览数据
|
||||||
})
|
})
|
||||||
|
|
||||||
/** 编辑头像 */
|
/** 编辑头像 */
|
||||||
@ -162,9 +163,9 @@ export default {
|
|||||||
beforeUpload,
|
beforeUpload,
|
||||||
uploadImg,
|
uploadImg,
|
||||||
realTime,
|
realTime,
|
||||||
closeDialog,
|
closeDialog
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -115,7 +115,7 @@
|
|||||||
<el-option label="单选框" value="radio" />
|
<el-option label="单选框" value="radio" />
|
||||||
<el-option label="复选框" value="checkbox" />
|
<el-option label="复选框" value="checkbox" />
|
||||||
<el-option label="日期时间范围控件" value="datetime" />
|
<el-option label="日期时间范围控件" value="datetime" />
|
||||||
<el-option label="日期范围控件" value="datePicker" />
|
<el-option label="日期范围控件" value="datePicker" />
|
||||||
<el-option label="图片上传" value="imageUpload" />
|
<el-option label="图片上传" value="imageUpload" />
|
||||||
<el-option label="文件上传" value="fileUpload" />
|
<el-option label="文件上传" value="fileUpload" />
|
||||||
<el-option label="富文本控件" value="editor" />
|
<el-option label="富文本控件" value="editor" />
|
||||||
@ -224,7 +224,8 @@ function submitForm() {
|
|||||||
checkedBtn: info.value.checkedBtn,
|
checkedBtn: info.value.checkedBtn,
|
||||||
permissionPrefix: info.value.permissionPrefix,
|
permissionPrefix: info.value.permissionPrefix,
|
||||||
colNum: info.value.colNum,
|
colNum: info.value.colNum,
|
||||||
generateRepo: info.value.generateRepo
|
generateRepo: info.value.generateRepo,
|
||||||
|
generateMenu: info.value.generateMenu
|
||||||
}
|
}
|
||||||
|
|
||||||
updateGenTable(genTable)
|
updateGenTable(genTable)
|
||||||
|
|||||||
@ -162,6 +162,31 @@
|
|||||||
<el-input v-model="info.genPath" placeholder="前端代码路径在后端配置文件gen->vuePath下配置"></el-input>
|
<el-input v-model="info.genPath" placeholder="前端代码路径在后端配置文件gen->vuePath下配置"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :lg="12">
|
||||||
|
<el-form-item label="是否生成仓储层">
|
||||||
|
<template #label>
|
||||||
|
是否生成仓储层
|
||||||
|
<span>
|
||||||
|
<el-tooltip content="不勾选代码将不会生成对应的ZR.Repository代码" placement="top">
|
||||||
|
<el-icon>
|
||||||
|
<question-filled />
|
||||||
|
</el-icon>
|
||||||
|
</el-tooltip>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
<el-radio-group v-model="info.generateRepo">
|
||||||
|
<el-radio :label="1">是</el-radio>
|
||||||
|
<el-radio :label="0">否</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :lg="12" v-if="info.genType == '1'">
|
||||||
|
<el-form-item prop="generateMenu" label="添加菜单">
|
||||||
|
<el-switch v-model="info.generateMenu" class="ml-2" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
<el-col :lg="24">
|
<el-col :lg="24">
|
||||||
<el-form-item prop="colNum" label="一行显示列">
|
<el-form-item prop="colNum" label="一行显示列">
|
||||||
<el-radio v-model="info.colNum" :label="12">2列</el-radio>
|
<el-radio v-model="info.colNum" :label="12">2列</el-radio>
|
||||||
@ -195,24 +220,6 @@
|
|||||||
</el-checkbox-group>
|
</el-checkbox-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :lg="24">
|
|
||||||
<el-form-item label="是否生成仓储层">
|
|
||||||
<template #label>
|
|
||||||
是否生成仓储层
|
|
||||||
<span>
|
|
||||||
<el-tooltip content="不勾选代码将不会生成对应的ZR.Repository代码" placement="top">
|
|
||||||
<el-icon>
|
|
||||||
<question-filled />
|
|
||||||
</el-icon>
|
|
||||||
</el-tooltip>
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
<el-radio-group v-model="info.generateRepo">
|
|
||||||
<el-radio :label="1">是</el-radio>
|
|
||||||
<el-radio :label="0">否</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row v-show="info.tplCategory == 'tree'">
|
<el-row v-show="info.tplCategory == 'tree'">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user