fix bug
parent
405b215bf5
commit
cdc9fff2d9
|
|
@ -23,8 +23,8 @@ onMounted(() => {
|
||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
// console.log( flgs.value,store.user.type, 'tech_service')
|
// console.log( flgs.value,store.user.type, 'tech_service')
|
||||||
flgs.value = [1, 2, 3, 4].includes(store.user.type)
|
flgs.value = [1, 2, 3, 4].includes(store.user.type)
|
||||||
userCode.value = ['admin', 'tech_service', 'footprint_dandang'].includes(
|
userCode.value = ['admin', 'tech_service', 'footprint_dandang'].some((item) =>
|
||||||
store.user.roleCode
|
store.user.roleCode?.includes(item)
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
const options = [
|
const options = [
|
||||||
|
|
@ -108,9 +108,7 @@ const toFootPrint = () => {
|
||||||
<div class="inline-flex items-center relative">
|
<div class="inline-flex items-center relative">
|
||||||
<!-- 足迹 -->
|
<!-- 足迹 -->
|
||||||
<!-- <div class="cursor-pointer w-40px h-40px z-200"> -->
|
<!-- <div class="cursor-pointer w-40px h-40px z-200"> -->
|
||||||
<el-icon size="35" v-if="userCode" @click="toFootPrint"
|
<el-icon size="35" v-if="userCode" @click="toFootPrint"><Platform /></el-icon>
|
||||||
><Platform
|
|
||||||
/></el-icon>
|
|
||||||
<!-- </div> -->
|
<!-- </div> -->
|
||||||
|
|
||||||
<!-- 全屏小图标 -->
|
<!-- 全屏小图标 -->
|
||||||
|
|
@ -139,12 +137,10 @@ const toFootPrint = () => {
|
||||||
class="bg-#fff/20 b-1px b-solid b-#fff rd-12px flex items-center h-52px px12px cursor-pointer"
|
class="bg-#fff/20 b-1px b-solid b-#fff rd-12px flex items-center h-52px px12px cursor-pointer"
|
||||||
>
|
>
|
||||||
<div size="small" @click="noticeShows">
|
<div size="small" @click="noticeShows">
|
||||||
<img
|
<img src="../assets/images/tongzhi@2x.png" class="w20px mr5px mt--5px" />新着通知<span
|
||||||
src="../assets/images/tongzhi@2x.png"
|
class="ml8px pl5px pr5px rounded-20px bg-#002FA7"
|
||||||
class="w20px mr5px mt--5px"
|
>{{ store.user.reviewCount ?? 0 }}</span
|
||||||
/>新着通知<span class="ml8px pl5px pr5px rounded-20px bg-#002FA7">{{
|
>
|
||||||
store.user.reviewCount ?? 0
|
|
||||||
}}</span>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- 跳转到碳中和页面的 -->
|
<!-- 跳转到碳中和页面的 -->
|
||||||
<div class="notice" v-if="noticeShow">
|
<div class="notice" v-if="noticeShow">
|
||||||
|
|
@ -212,10 +208,7 @@ const toFootPrint = () => {
|
||||||
<!-- 当前登录用户信息 -->
|
<!-- 当前登录用户信息 -->
|
||||||
<NDropdown show-arrow placement="bottom-end" size="huge" :options="options">
|
<NDropdown show-arrow placement="bottom-end" size="huge" :options="options">
|
||||||
<div class="cursor-pointer inline-flex items-center">
|
<div class="cursor-pointer inline-flex items-center">
|
||||||
<img
|
<img src="@/assets/images/icon-user.svg" class="ml40px mr16px w60px h60px" />
|
||||||
src="@/assets/images/icon-user.svg"
|
|
||||||
class="ml40px mr16px w60px h60px"
|
|
||||||
/>
|
|
||||||
<!-- @click="toggle" -->
|
<!-- @click="toggle" -->
|
||||||
<span>{{ store.user.nikeName ?? '游客' }}</span>
|
<span>{{ store.user.nikeName ?? '游客' }}</span>
|
||||||
<img src="@/assets/images/icon-more.svg" class="ml30px w13px" />
|
<img src="@/assets/images/icon-more.svg" class="ml30px w13px" />
|
||||||
|
|
|
||||||
|
|
@ -80,16 +80,16 @@ const router = createRouter({
|
||||||
name: 'DetailInfos',
|
name: 'DetailInfos',
|
||||||
component: () => import('@/views/extermal/Article/Details.vue')
|
component: () => import('@/views/extermal/Article/Details.vue')
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
path: '/external/Board',
|
// path: '/external/Board',
|
||||||
name: 'BoardlInfo',
|
// name: 'BoardlInfo',
|
||||||
component: () => import('@/views/extermal/Board/index.vue')
|
// component: () => import('@/views/extermal/Board/index.vue')
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
path: '/external/Process',
|
// path: '/external/Process',
|
||||||
name: 'Process1',
|
// name: 'Process1',
|
||||||
component: () => import('@/views/extermal/Process/index.vue')
|
// component: () => import('@/views/extermal/Process/index.vue')
|
||||||
},
|
// },
|
||||||
|
|
||||||
// 内部首页
|
// 内部首页
|
||||||
{
|
{
|
||||||
|
|
@ -356,6 +356,16 @@ const router = createRouter({
|
||||||
name: 'Process',
|
name: 'Process',
|
||||||
component: () => import('@/views/home/intelligence/process/Process.vue')
|
component: () => import('@/views/home/intelligence/process/Process.vue')
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/external/Board',
|
||||||
|
name: 'BoardlInfo',
|
||||||
|
component: () => import('@/views/extermal/Board/index.vue')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/external/Process',
|
||||||
|
name: 'Process1',
|
||||||
|
component: () => import('@/views/extermal/Process/index.vue')
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/Home/Process/ProcessInfo/:id',
|
path: '/Home/Process/ProcessInfo/:id',
|
||||||
meta: { title: '情报审批详情' },
|
meta: { title: '情报审批详情' },
|
||||||
|
|
|
||||||
|
|
@ -10,34 +10,34 @@ export const useUserStore = defineStore('user', () => {
|
||||||
roleName: '',
|
roleName: '',
|
||||||
//账号类型 1-管理员 2-调达本部内部课长 3-调达本部内部一般人员 4-公司其他部门人员 5-供应商
|
//账号类型 1-管理员 2-调达本部内部课长 3-调达本部内部一般人员 4-公司其他部门人员 5-供应商
|
||||||
type: '',
|
type: '',
|
||||||
roleCode:'',
|
roleCode: '',
|
||||||
isReview:0,
|
isReview: 0,
|
||||||
deptId:'',
|
deptId: '',
|
||||||
nikeName:'',
|
nikeName: '',
|
||||||
reviewCount:0,
|
reviewCount: 0,
|
||||||
isPublish:0,
|
isPublish: 0,
|
||||||
token:'',
|
token: '',
|
||||||
appLoginCount:0,
|
appLoginCount: 0,
|
||||||
appLoginToDayCount:0,
|
appLoginToDayCount: 0,
|
||||||
isUpPwd:0,
|
isUpPwd: 0
|
||||||
})
|
})
|
||||||
|
|
||||||
async function getUser() {
|
async function getUser() {
|
||||||
const a = ['review_person','zhuxi','tech_service']
|
const a = ['review_person', 'zhuxi', 'tech_service']
|
||||||
const b = ['publish','tech_service']
|
const b = ['publish', 'tech_service']
|
||||||
try {
|
try {
|
||||||
// if (!unref(token)) return
|
// if (!unref(token)) return
|
||||||
const { data } = await getCurLogin()
|
const { data } = await getCurLogin()
|
||||||
user.value = Object.assign(data,{
|
user.value = Object.assign(data, {
|
||||||
token:token.value
|
token: token.value
|
||||||
})
|
})
|
||||||
if(a.includes(data.roleCode)){
|
if (a.some((item) => data.roleCode?.includes(item))) {
|
||||||
user.value.isReview = 1
|
user.value.isReview = 1
|
||||||
}
|
}
|
||||||
if(b.includes(data.roleCode)){
|
if (b.some((item) => data.roleCode?.includes(item))) {
|
||||||
user.value.isPublish = 1
|
user.value.isPublish = 1
|
||||||
}
|
}
|
||||||
// console.log( user.value)
|
// console.log('----40----', user.value)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
LogOut()
|
LogOut()
|
||||||
}
|
}
|
||||||
|
|
@ -46,22 +46,22 @@ export const useUserStore = defineStore('user', () => {
|
||||||
const { push } = useRouter()
|
const { push } = useRouter()
|
||||||
function LogOut() {
|
function LogOut() {
|
||||||
token.value = null
|
token.value = null
|
||||||
user.value ={
|
user.value = {
|
||||||
id: '',
|
id: '',
|
||||||
account: '',
|
account: '',
|
||||||
roleName: '',
|
roleName: '',
|
||||||
//账号类型 1-管理员 2-调达本部内部课长 3-调达本部内部一般人员 4-公司其他部门人员 5-供应商
|
//账号类型 1-管理员 2-调达本部内部课长 3-调达本部内部一般人员 4-公司其他部门人员 5-供应商
|
||||||
type: '',
|
type: '',
|
||||||
roleCode:'',
|
roleCode: '',
|
||||||
isReview:0,
|
isReview: 0,
|
||||||
nikeName:'',
|
nikeName: '',
|
||||||
reviewCount:0,
|
reviewCount: 0,
|
||||||
isPublish:0,
|
isPublish: 0,
|
||||||
token:'',
|
token: '',
|
||||||
appLoginCount:0,
|
appLoginCount: 0,
|
||||||
isUpPwd:0
|
isUpPwd: 0
|
||||||
}
|
}
|
||||||
console.log(user.value)
|
// console.log('------64-', user.value)
|
||||||
push({ name: 'Entry' })
|
push({ name: 'Entry' })
|
||||||
}
|
}
|
||||||
return { user, getUser, LogOut }
|
return { user, getUser, LogOut }
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,19 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="page">
|
<HomeHead class="top"> </HomeHead>
|
||||||
<HomeHead class="top">
|
<div class="h-full relative flex flex-col">
|
||||||
<!-- <template #content>
|
<div class="font-600 flex items-end mt30px">
|
||||||
<HomeHeadSearch />
|
<div class="text-36px">
|
||||||
</template> -->
|
{{ not.article.cate == 7 ? '外部新增-News' : '外部新增-重要通知' }}
|
||||||
</HomeHead>
|
</div>
|
||||||
<div class="back" @click="push({ name: 'external' })">返回首页</div>
|
<div class="text-18px ml40px mr25px">{{ day }}</div>
|
||||||
<div class="bg-#fff p30px rounded-5px mt40px overflow-y-auto max-h980px">
|
<div class="text-18px">{{ week }}</div>
|
||||||
<n-form :label-width="900" size="medium" :model="formValue">
|
</div>
|
||||||
|
<div
|
||||||
|
class="q-wrapper flex-1 rounded-5px overflow-y-auto mt30px text-#142142 flex flex-col bg-#fff p30px"
|
||||||
|
>
|
||||||
|
<n-form :label-width="800" size="medium" :model="formValue">
|
||||||
<n-form-item label="标题" path="title">
|
<n-form-item label="标题" path="title">
|
||||||
<n-input v-model:value="formValue.title" placeholder="" />
|
<n-input class="w90%" v-model:value="formValue.title" placeholder="" />
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
<n-form-item v-if="formValue.cate == 8" label="是否置顶" path="isTop">
|
<n-form-item v-if="formValue.cate == 8" label="是否置顶" path="isTop">
|
||||||
<n-radio-group v-model:value="formValue.isTop" name="radiogroup">
|
<n-radio-group v-model:value="formValue.isTop" name="radiogroup">
|
||||||
|
|
@ -35,9 +39,7 @@
|
||||||
<n-form-item label="内容" path="title">
|
<n-form-item label="内容" path="title">
|
||||||
<Editor @getChildData="handleChild" class="bg-#fff" />
|
<Editor @getChildData="handleChild" class="bg-#fff" />
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
<n-button @click="thisClick" v-if="formValue.cate == 8">
|
<n-button @click="thisClick" v-if="formValue.cate == 8"> 情报公开范围 </n-button>
|
||||||
情报公开范围
|
|
||||||
</n-button>
|
|
||||||
<div class="mt15px h150px overflow-y-auto" v-if="formValue.cate == 8">
|
<div class="mt15px h150px overflow-y-auto" v-if="formValue.cate == 8">
|
||||||
<el-tag
|
<el-tag
|
||||||
v-for="i in dataList"
|
v-for="i in dataList"
|
||||||
|
|
@ -55,16 +57,11 @@
|
||||||
<n-form-item>
|
<n-form-item>
|
||||||
<n-button @click="showModal1 = true"> 文本内容预览</n-button>
|
<n-button @click="showModal1 = true"> 文本内容预览</n-button>
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
<el-button type="primary" class="mt20px" @click="saveThis"
|
<el-button type="primary" class="mt20px w-100px" @click="saveThis">提交</el-button>
|
||||||
>提交</el-button
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<n-modal v-model:show="showModal1">
|
<n-modal v-model:show="showModal1">
|
||||||
<div class="flex w80% p30px bg-#fff my40px rounded-30px">
|
<div class="flex w80% p30px bg-#fff my40px rounded-30px">
|
||||||
<div
|
<div class="overflow-y-auto h800px container" v-html="editorContent"></div>
|
||||||
class="overflow-y-auto h800px container"
|
|
||||||
v-html="editorContent"
|
|
||||||
></div>
|
|
||||||
</div>
|
</div>
|
||||||
</n-modal>
|
</n-modal>
|
||||||
<div>
|
<div>
|
||||||
|
|
@ -82,8 +79,8 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import Editor from "@/views/home/intelligence/components/TinyECE.vue";
|
import Editor from '@/views/home/intelligence/components/TinyECE.vue'
|
||||||
import UserPage from "../../home/intelligence/process/UserPages.vue";
|
import UserPage from '../../home/intelligence/process/UserPages.vue'
|
||||||
import {
|
import {
|
||||||
NModal,
|
NModal,
|
||||||
NCard,
|
NCard,
|
||||||
|
|
@ -96,68 +93,67 @@ import {
|
||||||
NSpace,
|
NSpace,
|
||||||
NRadioGroup,
|
NRadioGroup,
|
||||||
useMessage,
|
useMessage,
|
||||||
treeDark,
|
treeDark
|
||||||
} from "naive-ui";
|
} from 'naive-ui'
|
||||||
import HomeHead from "@/views/home/components/HomeHead.vue";
|
import HomeHead from '@/views/home/components/HomeHead.vue'
|
||||||
import { noticeld } from "@/stores/modules/noticeId";
|
import { noticeld } from '@/stores/modules/noticeId'
|
||||||
import { saveArticle,trendsAdd } from "@/api/daikin/base";
|
import { saveArticle, trendsAdd } from '@/api/daikin/base'
|
||||||
const editorContent = ref();
|
import { useDate } from '@/views/home/hooks/useDate'
|
||||||
const { push } = useRouter();
|
const editorContent = ref()
|
||||||
const message = useMessage();
|
const { push } = useRouter()
|
||||||
const not = noticeld();
|
const message = useMessage()
|
||||||
|
const { day, week } = useDate()
|
||||||
|
const not = noticeld()
|
||||||
// const CloseThis = ()=>{
|
// const CloseThis = ()=>{
|
||||||
// mask.value = false
|
// mask.value = false
|
||||||
// }
|
// }
|
||||||
let formValue: any = ref({
|
let formValue: any = ref({
|
||||||
type: "1",
|
type: '1',
|
||||||
cate: not.article.cate,
|
cate: not.article.cate,
|
||||||
title: "",
|
title: '',
|
||||||
tag: "",
|
tag: '',
|
||||||
source: "",
|
source: '',
|
||||||
content: "",
|
content: '',
|
||||||
reviewSource: "3",
|
reviewSource: '3',
|
||||||
isTop: "N",
|
isTop: 'N',
|
||||||
treeSource: "3",
|
treeSource: '3'
|
||||||
});
|
})
|
||||||
function escapeHTML(html: string): string {
|
function escapeHTML(html: string): string {
|
||||||
const tempElement = document.createElement("div");
|
const tempElement = document.createElement('div')
|
||||||
tempElement.textContent = html;
|
tempElement.textContent = html
|
||||||
return tempElement.innerHTML;
|
return tempElement.innerHTML
|
||||||
}
|
}
|
||||||
const handleClose = (tag: any) => {
|
const handleClose = (tag: any) => {
|
||||||
dataList.value.splice(dataList.value.indexOf(tag), 1);
|
dataList.value.splice(dataList.value.indexOf(tag), 1)
|
||||||
};
|
}
|
||||||
// 添加留言
|
// 添加留言
|
||||||
async function save() {
|
async function save() {
|
||||||
let userIdList: any[] = [];
|
let userIdList: any[] = []
|
||||||
const cont = editorContent.value;
|
const cont = editorContent.value
|
||||||
const content = escapeHTML(cont);
|
const content = escapeHTML(cont)
|
||||||
const { title, reviewSource, tag, treeSource, source, type, isTop } =
|
const { title, reviewSource, tag, treeSource, source, type, isTop } = formValue.value
|
||||||
formValue.value;
|
const cate = not.article.cate
|
||||||
const cate = not.article.cate;
|
|
||||||
// console.log(formValue.value, content,cate)
|
// console.log(formValue.value, content,cate)
|
||||||
if (dataList.value) {
|
if (dataList.value) {
|
||||||
dataList.value.forEach((i: { userId: any }) => {
|
dataList.value.forEach((i: { userId: any }) => {
|
||||||
console.log(dataList.value);
|
console.log(dataList.value)
|
||||||
userIdList.push(i.userId);
|
userIdList.push(i.userId)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// console.log(formValue.value)
|
// console.log(formValue.value)
|
||||||
// if(userIdList.length<0) return
|
// if(userIdList.length<0) return
|
||||||
if (not.article.cate==='9') {
|
if (not.article.cate === '9') {
|
||||||
const { msg, code } = await trendsAdd({title,content});
|
const { msg, code } = await trendsAdd({ title, content })
|
||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
message.success("新增成功");
|
message.success('新增成功')
|
||||||
} else {
|
} else {
|
||||||
message.success(msg);
|
message.success(msg)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
}
|
|
||||||
else{
|
|
||||||
const { msg, code } = await saveArticle({
|
const { msg, code } = await saveArticle({
|
||||||
title,
|
title,
|
||||||
tag: "",
|
tag: '',
|
||||||
isTop,
|
isTop,
|
||||||
treeSource,
|
treeSource,
|
||||||
reviewSource,
|
reviewSource,
|
||||||
|
|
@ -165,50 +161,49 @@ async function save() {
|
||||||
cate,
|
cate,
|
||||||
type,
|
type,
|
||||||
content,
|
content,
|
||||||
userIdList,
|
userIdList
|
||||||
});
|
})
|
||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
message.success("新增成功");
|
message.success('新增成功')
|
||||||
} else {
|
} else {
|
||||||
message.success(msg);
|
message.success(msg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
push({ name: "external" });
|
push({ name: 'external' })
|
||||||
}
|
}
|
||||||
// 编辑器数据
|
// 编辑器数据
|
||||||
const handleChild = (data: string) => {
|
const handleChild = (data: string) => {
|
||||||
editorContent.value = data;
|
editorContent.value = data
|
||||||
// console.log(data)
|
// console.log(data)
|
||||||
};
|
}
|
||||||
// 添加
|
// 添加
|
||||||
const saveThis = (e: { preventDefault: () => void }) => {
|
const saveThis = (e: { preventDefault: () => void }) => {
|
||||||
e.preventDefault();
|
e.preventDefault()
|
||||||
save();
|
save()
|
||||||
};
|
}
|
||||||
const stores = noticeld();
|
const stores = noticeld()
|
||||||
const showModal = ref(false);
|
const showModal = ref(false)
|
||||||
const showModal1 = ref(false);
|
const showModal1 = ref(false)
|
||||||
const setUserList = ref();
|
const setUserList = ref()
|
||||||
const dataList = ref();
|
const dataList = ref()
|
||||||
const thisClick = () => {
|
const thisClick = () => {
|
||||||
showModal.value = true;
|
showModal.value = true
|
||||||
|
|
||||||
setUserList.value = dataList.value;
|
setUserList.value = dataList.value
|
||||||
stores.article.reviewSource = formValue.value.reviewSource;
|
stores.article.reviewSource = formValue.value.reviewSource
|
||||||
};
|
}
|
||||||
const CloseThis = (data: boolean) => {
|
const CloseThis = (data: boolean) => {
|
||||||
showModal.value = data;
|
showModal.value = data
|
||||||
};
|
}
|
||||||
const handleChild1 = (data: any) => {
|
const handleChild1 = (data: any) => {
|
||||||
const { showModal: show, multipleSelection } = data;
|
const { showModal: show, multipleSelection } = data
|
||||||
console.log(show);
|
console.log(show)
|
||||||
showModal.value = unref(show);
|
showModal.value = unref(show)
|
||||||
dataList.value = unref(multipleSelection);
|
dataList.value = unref(multipleSelection)
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
width: 1px;
|
width: 1px;
|
||||||
|
|
@ -225,16 +220,28 @@ const handleChild1 = (data: any) => {
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
.top {
|
.top {
|
||||||
|
position: absolute;
|
||||||
right: 30px;
|
right: 30px;
|
||||||
top: 0px;
|
top: -92px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.q-wrapper {
|
||||||
|
border-radius: 18px;
|
||||||
|
border: 1px solid #e7ebf5;
|
||||||
|
box-shadow: inset 1px 2px 12px rgba(14, 86, 221, 0.32);
|
||||||
|
overflow: auto;
|
||||||
}
|
}
|
||||||
.page {
|
.page {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
// height: 100px;
|
// height: 100px;
|
||||||
font-family: "PingFang SC";
|
font-family: 'PingFang SC';
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
|
||||||
background-image: url("@/assets/images/bg.jpg");
|
background-image: url('@/assets/images/bg.jpg');
|
||||||
background-color: #000;
|
background-color: #000;
|
||||||
background-position: 0 0;
|
background-position: 0 0;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
|
@ -264,7 +271,7 @@ const handleChild1 = (data: any) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.main {
|
.main {
|
||||||
background-image: url("@/assets/images/bg-rs-main.svg");
|
background-image: url('@/assets/images/bg-rs-main.svg');
|
||||||
background-position: 0 0;
|
background-position: 0 0;
|
||||||
background-repeat: repeat-x;
|
background-repeat: repeat-x;
|
||||||
background-size: auto;
|
background-size: auto;
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,9 @@ const userCode = ref(false)
|
||||||
const shormA = ref(false)
|
const shormA = ref(false)
|
||||||
const shormB = ref(false)
|
const shormB = ref(false)
|
||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
userCode.value = ['admin', 'waibuyemianguanliyuan', 'tech_service'].includes(store.user.roleCode)
|
userCode.value = ['admin', 'waibuyemianguanliyuan', 'tech_service'].some((item) =>
|
||||||
|
store.user.roleCode?.includes(item)
|
||||||
|
)
|
||||||
console.log(isUpPwds.value, userCode.value)
|
console.log(isUpPwds.value, userCode.value)
|
||||||
isUpPwds.value = store.user.isUpPwd === 2 ? true : false
|
isUpPwds.value = store.user.isUpPwd === 2 ? true : false
|
||||||
console.log(isUpPwds.value, 'xiaolu0000222')
|
console.log(isUpPwds.value, 'xiaolu0000222')
|
||||||
|
|
@ -599,14 +601,14 @@ const demandWithdraws = async (obj) => {
|
||||||
<div class="cards w34% h800px page-wrapper">
|
<div class="cards w34% h800px page-wrapper">
|
||||||
<div class="cards_title">News</div>
|
<div class="cards_title">News</div>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="userCode"
|
v-if="false && userCode"
|
||||||
type="primary"
|
type="primary"
|
||||||
class="absolute right-164px top-15px"
|
class="absolute right-164px top-15px"
|
||||||
@click="push('/external/Process')"
|
@click="push('/external/Process')"
|
||||||
>流程列表</el-button
|
>流程列表</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="userCode"
|
v-if="false && userCode"
|
||||||
type="primary"
|
type="primary"
|
||||||
class="absolute right-80px top-15px"
|
class="absolute right-80px top-15px"
|
||||||
@click="toDetail2(7)"
|
@click="toDetail2(7)"
|
||||||
|
|
@ -660,13 +662,17 @@ const demandWithdraws = async (obj) => {
|
||||||
<div class="text-26px text-#142142 font-extrabold mb-10px pl20px">重要通知</div>
|
<div class="text-26px text-#142142 font-extrabold mb-10px pl20px">重要通知</div>
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<el-button
|
<el-button
|
||||||
v-if="userCode"
|
v-if="false && userCode"
|
||||||
type="primary"
|
type="primary"
|
||||||
class="mt0px mr0px"
|
class="mt0px mr0px"
|
||||||
@click="push({ path: '/external/Process', query: { cate: '8' } })"
|
@click="push({ path: '/external/Process', query: { cate: '8' } })"
|
||||||
>流程列表</el-button
|
>流程列表</el-button
|
||||||
>
|
>
|
||||||
<el-button v-if="userCode" type="primary" class="mt0px mr10px" @click="toDetail2(8)"
|
<el-button
|
||||||
|
v-if="false && userCode"
|
||||||
|
type="primary"
|
||||||
|
class="mt0px mr10px"
|
||||||
|
@click="toDetail2(8)"
|
||||||
>+ 新增</el-button
|
>+ 新增</el-button
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,15 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { getImg } from "./images";
|
import { getImg } from './images'
|
||||||
import {
|
import {
|
||||||
getNoticeList,
|
getNoticeList,
|
||||||
deleteWithdraw,
|
deleteWithdraw,
|
||||||
getManagerList,
|
getManagerList,
|
||||||
getExternalManagerDetail, // news/重要通知-流程详情
|
getExternalManagerDetail, // news/重要通知-流程详情
|
||||||
externalWithdraw, // news/重要通知-撤回
|
externalWithdraw, // news/重要通知-撤回
|
||||||
getExternalManagerList, // news/重要通知-流程列表
|
getExternalManagerList // news/重要通知-流程列表
|
||||||
} from "@/api/daikin/base";
|
} from '@/api/daikin/base'
|
||||||
import Editor from "@/views/home/intelligence/components/TinyECE.vue";
|
import Editor from '@/views/home/intelligence/components/TinyECE.vue'
|
||||||
import UserPage from "../../home/intelligence/process/UserPages.vue";
|
import UserPage from '../../home/intelligence/process/UserPages.vue'
|
||||||
import {
|
import {
|
||||||
NModal,
|
NModal,
|
||||||
NCard,
|
NCard,
|
||||||
|
|
@ -24,137 +24,137 @@ import {
|
||||||
useMessage,
|
useMessage,
|
||||||
treeDark,
|
treeDark,
|
||||||
NTag
|
NTag
|
||||||
} from "naive-ui";
|
} from 'naive-ui'
|
||||||
import { useUserStore } from "@/stores/modules/user";
|
import { useUserStore } from '@/stores/modules/user'
|
||||||
import HomeHead from "@/views/home/components/HomeHead.vue";
|
import HomeHead from '@/views/home/components/HomeHead.vue'
|
||||||
import { noticeld } from "@/stores/modules/noticeId";
|
import { noticeld } from '@/stores/modules/noticeId'
|
||||||
import { saveArticle } from "@/api/daikin/base";
|
import { saveArticle } from '@/api/daikin/base'
|
||||||
const editorContent = ref();
|
import { useDate } from '@/views/home/hooks/useDate'
|
||||||
const { push } = useRouter();
|
const editorContent = ref()
|
||||||
const message = useMessage();
|
const { push } = useRouter()
|
||||||
const not = noticeld();
|
const message = useMessage()
|
||||||
|
const not = noticeld()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const activeNames = ref("2");
|
const activeNames = ref('2')
|
||||||
const Status = reactive({
|
const Status = reactive({
|
||||||
reviewStatus: 1,
|
reviewStatus: 1,
|
||||||
reviewSource: 2,
|
reviewSource: 2
|
||||||
});
|
})
|
||||||
const cate = ref('7')
|
const cate = ref('7')
|
||||||
const activeName = ref("0");
|
const activeName = ref('0')
|
||||||
const tabIndex = ref("0");
|
const tabIndex = ref('0')
|
||||||
const tabs = ref([
|
const tabs = ref([
|
||||||
{
|
{
|
||||||
name: "审核中",
|
name: '审核中',
|
||||||
icon: getImg("shhz2@2x.png"),
|
icon: getImg('shhz2@2x.png'),
|
||||||
icons: getImg("shhz1@2x.png"),
|
icons: getImg('shhz1@2x.png'),
|
||||||
id: 0,
|
id: 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "已审核",
|
name: '已审核',
|
||||||
icon: getImg("wanc2@2x.png"),
|
icon: getImg('wanc2@2x.png'),
|
||||||
icons: getImg("wanc1@2x.png"),
|
icons: getImg('wanc1@2x.png'),
|
||||||
id: 1,
|
id: 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "驳回/撤回",
|
name: '驳回/撤回',
|
||||||
icon: getImg("boh2@2x.png"),
|
icon: getImg('boh2@2x.png'),
|
||||||
icons: getImg("boh1@2x.png"),
|
icons: getImg('boh1@2x.png'),
|
||||||
id: 2,
|
id: 2
|
||||||
},
|
}
|
||||||
]);
|
])
|
||||||
const listData = ref<any>([]);
|
const listData = ref<any>([])
|
||||||
|
|
||||||
const store2 = useUserStore();
|
const store2 = useUserStore()
|
||||||
// 二级
|
// 二级
|
||||||
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
||||||
tabIndex.value = tab.index;
|
tabIndex.value = tab.index
|
||||||
switch (tab.index) {
|
switch (tab.index) {
|
||||||
case "0":
|
case '0':
|
||||||
getPageList("1");
|
getPageList('1')
|
||||||
break;
|
break
|
||||||
case "1":
|
case '1':
|
||||||
// 审核通过
|
// 审核通过
|
||||||
getPageList("3");
|
getPageList('3')
|
||||||
break;
|
break
|
||||||
case "2":
|
case '2':
|
||||||
// 撤销驳回
|
// 撤销驳回
|
||||||
getPageList("4");
|
getPageList('4')
|
||||||
break;
|
break
|
||||||
default:
|
default:
|
||||||
getPageList("1");
|
getPageList('1')
|
||||||
break;
|
break
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
async function getPageList(reviewStatus: string) {
|
async function getPageList(reviewStatus: string) {
|
||||||
const { pageNum, pageSize } = pageInfo;
|
const { pageNum, pageSize } = pageInfo
|
||||||
const resp = await getExternalManagerList({
|
const resp = await getExternalManagerList({
|
||||||
pageNum,
|
pageNum,
|
||||||
pageSize,
|
pageSize,
|
||||||
reviewStatus,
|
reviewStatus,
|
||||||
cate: cate.value,
|
cate: cate.value
|
||||||
});
|
})
|
||||||
// listData.value = [];
|
// listData.value = [];
|
||||||
listData.value = resp?.rows || [];
|
listData.value = resp?.rows || []
|
||||||
}
|
}
|
||||||
// 撤回按钮
|
// 撤回按钮
|
||||||
const clickCancel = (data: any) => {
|
const clickCancel = (data: any) => {
|
||||||
const { id, noticeId, reviewStatus } = data;
|
const { id, noticeId, reviewStatus } = data
|
||||||
externalWithdraw(id).then((res) => {
|
externalWithdraw(id).then((res) => {
|
||||||
console.log(res, "删除结果");
|
console.log(res, '删除结果')
|
||||||
getPageList("1");
|
getPageList('1')
|
||||||
});
|
})
|
||||||
};
|
}
|
||||||
let formValue: any = ref({
|
let formValue: any = ref({
|
||||||
type: "1",
|
type: '1',
|
||||||
cate: not.article.cate,
|
cate: not.article.cate,
|
||||||
title: "",
|
title: '',
|
||||||
tag: "",
|
tag: '',
|
||||||
source: "",
|
source: '',
|
||||||
content: "",
|
content: '',
|
||||||
reviewSource: "3",
|
reviewSource: '3',
|
||||||
isTop: "N",
|
isTop: 'N',
|
||||||
treeSource: "1",
|
treeSource: '1'
|
||||||
});
|
})
|
||||||
const pageInfo = reactive({
|
const pageInfo = reactive({
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
type: "1",
|
type: '1',
|
||||||
cate: "7",
|
cate: '7',
|
||||||
total: 10,
|
total: 10
|
||||||
});
|
})
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
cate.value = route.query.cate
|
cate.value = route.query.cate
|
||||||
getPageList("1");
|
getPageList('1')
|
||||||
});
|
})
|
||||||
function escapeHTML(html: string): string {
|
function escapeHTML(html: string): string {
|
||||||
const tempElement = document.createElement("div");
|
const tempElement = document.createElement('div')
|
||||||
tempElement.textContent = html;
|
tempElement.textContent = html
|
||||||
return tempElement.innerHTML;
|
return tempElement.innerHTML
|
||||||
}
|
}
|
||||||
const handleClose = (tag: any) => {
|
const handleClose = (tag: any) => {
|
||||||
dataList.value.splice(dataList.value.indexOf(tag), 1);
|
dataList.value.splice(dataList.value.indexOf(tag), 1)
|
||||||
};
|
}
|
||||||
// 添加留言
|
// 添加留言
|
||||||
async function save() {
|
async function save() {
|
||||||
let userIdList: any[] = [];
|
let userIdList: any[] = []
|
||||||
const cont = editorContent.value;
|
const cont = editorContent.value
|
||||||
const content = escapeHTML(cont);
|
const content = escapeHTML(cont)
|
||||||
const { title, reviewSource, tag, treeSource, source, type, isTop } =
|
const { title, reviewSource, tag, treeSource, source, type, isTop } = formValue.value
|
||||||
formValue.value;
|
const cate = not.article.cate
|
||||||
const cate = not.article.cate;
|
|
||||||
// console.log(formValue.value, content,cate)
|
// console.log(formValue.value, content,cate)
|
||||||
if (dataList.value) {
|
if (dataList.value) {
|
||||||
dataList.value.forEach((i: { userId: any }) => {
|
dataList.value.forEach((i: { userId: any }) => {
|
||||||
console.log(dataList.value);
|
console.log(dataList.value)
|
||||||
userIdList.push(i.userId);
|
userIdList.push(i.userId)
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// console.log(formValue.value)
|
// console.log(formValue.value)
|
||||||
// if(userIdList.length<0) return
|
// if(userIdList.length<0) return
|
||||||
const { msg, code } = await saveArticle({
|
const { msg, code } = await saveArticle({
|
||||||
title,
|
title,
|
||||||
tag: "",
|
tag: '',
|
||||||
isTop,
|
isTop,
|
||||||
treeSource,
|
treeSource,
|
||||||
reviewSource,
|
reviewSource,
|
||||||
|
|
@ -162,54 +162,57 @@ async function save() {
|
||||||
cate,
|
cate,
|
||||||
type,
|
type,
|
||||||
content,
|
content,
|
||||||
userIdList,
|
userIdList
|
||||||
});
|
})
|
||||||
if (code === 200) {
|
if (code === 200) {
|
||||||
message.success("新增成功");
|
message.success('新增成功')
|
||||||
} else {
|
} else {
|
||||||
message.success(msg);
|
message.success(msg)
|
||||||
}
|
}
|
||||||
push({ name: "external" });
|
push({ name: 'external' })
|
||||||
}
|
}
|
||||||
// 编辑器数据
|
// 编辑器数据
|
||||||
const handleChild = (data: string) => {
|
const handleChild = (data: string) => {
|
||||||
editorContent.value = data;
|
editorContent.value = data
|
||||||
// console.log(data)
|
// console.log(data)
|
||||||
};
|
}
|
||||||
// 添加
|
// 添加
|
||||||
const saveThis = (e: { preventDefault: () => void }) => {
|
const saveThis = (e: { preventDefault: () => void }) => {
|
||||||
e.preventDefault();
|
e.preventDefault()
|
||||||
save();
|
save()
|
||||||
};
|
}
|
||||||
const stores = noticeld();
|
const { day, week } = useDate()
|
||||||
const showModal = ref(false);
|
const stores = noticeld()
|
||||||
const setUserList = ref();
|
const showModal = ref(false)
|
||||||
const dataList = ref();
|
const setUserList = ref()
|
||||||
|
const dataList = ref()
|
||||||
const thisClick = () => {
|
const thisClick = () => {
|
||||||
showModal.value = true;
|
showModal.value = true
|
||||||
setUserList.value = dataList.value;
|
setUserList.value = dataList.value
|
||||||
stores.article.reviewSource = formValue.value.reviewSource;
|
stores.article.reviewSource = formValue.value.reviewSource
|
||||||
};
|
}
|
||||||
const CloseThis = (data: boolean) => {
|
const CloseThis = (data: boolean) => {
|
||||||
showModal.value = data;
|
showModal.value = data
|
||||||
};
|
}
|
||||||
const handleChild1 = (data: any) => {
|
const handleChild1 = (data: any) => {
|
||||||
const { showModal: show, multipleSelection } = data;
|
const { showModal: show, multipleSelection } = data
|
||||||
console.log("🚀 ~ file: index.vue:197 ~ data:", data)
|
console.log('🚀 ~ file: index.vue:197 ~ data:', data)
|
||||||
// showModal.value = unref(show);
|
// showModal.value = unref(show);
|
||||||
// dataList.value = unref(multipleSelection);
|
// dataList.value = unref(multipleSelection);
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="page">
|
<HomeHead class="top"> </HomeHead>
|
||||||
<HomeHead class="top">
|
<div class="h-full relative flex flex-col">
|
||||||
<!-- <template #content>
|
<div class="font-600 flex items-end mt30px">
|
||||||
<HomeHeadSearch />
|
<div class="text-36px">{{ cate == 7 ? '外部审批流程-News' : '外部审批流程-重要通知' }}</div>
|
||||||
</template> -->
|
<div class="text-18px ml40px mr25px">{{ day }}</div>
|
||||||
</HomeHead>
|
<div class="text-18px">{{ week }}</div>
|
||||||
<div class="back" @click="push({ name: 'external' })">返回首页</div>
|
</div>
|
||||||
<div class="bg-#fff p30px rounded-5px mt40px overflow-y-scroll h900px">
|
<div
|
||||||
|
class="q-wrapper flex-1 rounded-5px mt30px overflow-y-scroll h900px text-#142142 flex flex-col bg-#fff p30px"
|
||||||
|
>
|
||||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||||
<el-tab-pane v-for="item in tabs" :key="item">
|
<el-tab-pane v-for="item in tabs" :key="item">
|
||||||
<template #label>
|
<template #label>
|
||||||
|
|
@ -263,28 +266,20 @@ const handleChild1 = (data: any) => {
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
<el-dropdown-item v-if="i.firstReviewName">
|
<el-dropdown-item v-if="i.firstReviewName">
|
||||||
<div class="ml20px text-#808696 !text-12px flex">
|
<div class="ml20px text-#808696 !text-12px flex">
|
||||||
<span class="min-w120px"
|
<span class="min-w120px">初审人:{{ i.firstReviewName }}</span>
|
||||||
>初审人:{{ i.firstReviewName }}</span
|
|
||||||
>
|
|
||||||
<span class="ml20px">初审时间:{{ i.firstReviewTime }}</span>
|
<span class="ml20px">初审时间:{{ i.firstReviewTime }}</span>
|
||||||
</div>
|
</div>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="i.ultimateReviewName">
|
<el-dropdown-item v-if="i.ultimateReviewName">
|
||||||
<div class="ml20px text-#808696 !text-12px flex">
|
<div class="ml20px text-#808696 !text-12px flex">
|
||||||
<span class="min-w120px"
|
<span class="min-w120px">终审人:{{ i.ultimateReviewName }}</span>
|
||||||
>终审人:{{ i.ultimateReviewName }}</span
|
<span class="ml20px">终审时间:{{ i.ultimateReviewTime }}</span>
|
||||||
>
|
|
||||||
<span class="ml20px"
|
|
||||||
>终审时间:{{ i.ultimateReviewTime }}</span
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</template>
|
</template>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
<span class="shrink-0 ml38px text-#808696 w220px">{{
|
<span class="shrink-0 ml38px text-#808696 w220px">{{ i.createTime }}</span>
|
||||||
i.createTime
|
|
||||||
}}</span>
|
|
||||||
<span
|
<span
|
||||||
v-if="store2.user.isReview > 0 && i.publishName"
|
v-if="store2.user.isReview > 0 && i.publishName"
|
||||||
class="ml20px text-#808696 text-16px flex-1"
|
class="ml20px text-#808696 text-16px flex-1"
|
||||||
|
|
@ -314,16 +309,28 @@ const handleChild1 = (data: any) => {
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
.top {
|
.top {
|
||||||
|
position: absolute;
|
||||||
right: 30px;
|
right: 30px;
|
||||||
top: 0px;
|
top: -92px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.q-wrapper {
|
||||||
|
border-radius: 18px;
|
||||||
|
border: 1px solid #e7ebf5;
|
||||||
|
box-shadow: inset 1px 2px 12px rgba(14, 86, 221, 0.32);
|
||||||
|
overflow: auto;
|
||||||
}
|
}
|
||||||
.page {
|
.page {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
// height: 100px;
|
// height: 100px;
|
||||||
font-family: "PingFang SC";
|
font-family: 'PingFang SC';
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
|
||||||
background-image: url("@/assets/images/bg.jpg");
|
background-image: url('@/assets/images/bg.jpg');
|
||||||
background-color: #000;
|
background-color: #000;
|
||||||
background-position: 0 0;
|
background-position: 0 0;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
|
@ -353,7 +360,7 @@ const handleChild1 = (data: any) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.main {
|
.main {
|
||||||
background-image: url("@/assets/images/bg-rs-main.svg");
|
background-image: url('@/assets/images/bg-rs-main.svg');
|
||||||
background-position: 0 0;
|
background-position: 0 0;
|
||||||
background-repeat: repeat-x;
|
background-repeat: repeat-x;
|
||||||
background-size: auto;
|
background-size: auto;
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,9 @@ const store = useUserStore()
|
||||||
const isUpPwds = ref(false)
|
const isUpPwds = ref(false)
|
||||||
const userCode = ref(false)
|
const userCode = ref(false)
|
||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
userCode.value = ['admin', 'cd_dandang', 'tech_service'].includes(store.user.roleCode)
|
userCode.value = ['admin', 'cd_dandang', 'tech_service'].some((item) =>
|
||||||
|
store.user.roleCode?.includes(item)
|
||||||
|
)
|
||||||
isUpPwds.value = store.user.isUpPwd === 2 ? true : false
|
isUpPwds.value = store.user.isUpPwd === 2 ? true : false
|
||||||
})
|
})
|
||||||
const activeCard5NavKey = ref('DIS')
|
const activeCard5NavKey = ref('DIS')
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,9 @@ import { Swiper, SwiperSlide } from 'swiper/vue'
|
||||||
import { Autoplay, Navigation, Pagination, A11y } from 'swiper'
|
import { Autoplay, Navigation, Pagination, A11y } from 'swiper'
|
||||||
const modules = [Autoplay, Pagination, Navigation, A11y]
|
const modules = [Autoplay, Pagination, Navigation, A11y]
|
||||||
const store = useUserStore()
|
const store = useUserStore()
|
||||||
const userCode = ['admin', 'bcp_dandnag', 'tech_service'].includes(store.user.roleCode)
|
const userCode = ['admin', 'bcp_dandnag', 'tech_service'].some((item) =>
|
||||||
|
store.user.roleCode?.includes(item)
|
||||||
|
)
|
||||||
|
|
||||||
// import { da } from 'element-plus/es/locale/index.js'
|
// import { da } from 'element-plus/es/locale/index.js'
|
||||||
const { day, week } = useDate()
|
const { day, week } = useDate()
|
||||||
|
|
|
||||||
|
|
@ -7,69 +7,66 @@
|
||||||
</li>
|
</li>
|
||||||
<div id="earth" class="earth"></div>
|
<div id="earth" class="earth"></div>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
const numCards = ref(9)
|
||||||
const numCards = ref(9);
|
const mouseX = ref(0)
|
||||||
const mouseX = ref(0);
|
const mouseY = ref(0)
|
||||||
const mouseY = ref(0);
|
const isDragging = ref(false)
|
||||||
const isDragging = ref(false);
|
|
||||||
|
|
||||||
const handleMouseMove = (event) => {
|
const handleMouseMove = (event) => {
|
||||||
const rect = event.currentTarget.getBoundingClientRect();
|
const rect = event.currentTarget?.getBoundingClientRect()
|
||||||
mouseX.value = event.clientX - rect.left;
|
mouseX.value = event.clientX - rect.left
|
||||||
mouseY.value = event.clientY - rect.top;
|
mouseY.value = event.clientY - rect.top
|
||||||
};
|
}
|
||||||
|
|
||||||
const updateRotation = () => {
|
const updateRotation = () => {
|
||||||
const cardRefs = ref([]);
|
const cardRefs = ref([])
|
||||||
const earth = ref(null);
|
const earth = ref(null)
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
cardRefs.value = document.querySelectorAll('#ul1 li');
|
cardRefs.value = document.querySelectorAll('#ul1 li')
|
||||||
earth.value = document.getElementById('earth');
|
earth.value = document.getElementById('earth')
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
cardRefs.value.forEach((card, index) => {
|
cardRefs.value.forEach((card, index) => {
|
||||||
const d = (360 / numCards.value) * index + mouseX.value / 10;
|
const d = (360 / numCards.value) * index + mouseX.value / 10
|
||||||
card.style.transform = `rotateY(${d}deg) translateZ(350px)`;
|
card.style.transform = `rotateY(${d}deg) translateZ(350px)`
|
||||||
|
|
||||||
if (Math.abs(d) < 30) {
|
if (Math.abs(d) < 30) {
|
||||||
card.style.zIndex = 2;
|
card.style.zIndex = 2
|
||||||
if (earth.value) {
|
if (earth.value) {
|
||||||
earth.value.style.transform = 'translateZ(-400px)';
|
earth.value.style.transform = 'translateZ(-400px)'
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
card.style.zIndex = -1;
|
card.style.zIndex = -1
|
||||||
if (earth.value) {
|
if (earth.value) {
|
||||||
earth.value.style.transform = 'translateZ(400px)';
|
earth.value.style.transform = 'translateZ(400px)'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}, 30);
|
}, 30)
|
||||||
});
|
})
|
||||||
};
|
}
|
||||||
|
|
||||||
const autoRotate = () => {
|
const autoRotate = () => {
|
||||||
const interval = setInterval(() => {
|
const interval = setInterval(() => {
|
||||||
if (!isDragging.value) {
|
if (!isDragging.value) {
|
||||||
// 自动旋转的速度
|
// 自动旋转的速度
|
||||||
rotationY.value += 1;
|
rotationY.value += 1
|
||||||
}
|
}
|
||||||
}, 30);
|
}, 30)
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
clearInterval(interval);
|
clearInterval(interval)
|
||||||
});
|
})
|
||||||
};
|
}
|
||||||
|
|
||||||
updateRotation();
|
updateRotation()
|
||||||
autoRotate();
|
autoRotate()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
* {
|
* {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
@ -110,9 +107,8 @@ body {
|
||||||
line-height: 10px;
|
line-height: 10px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
/* font-size: 30px; */
|
/* font-size: 30px; */
|
||||||
p{
|
p {
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -137,4 +133,3 @@ body {
|
||||||
transition: transform 0.5s ease;
|
transition: transform 0.5s ease;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
@ -2,12 +2,13 @@
|
||||||
<div @mousemove="handleMouseMove">
|
<div @mousemove="handleMouseMove">
|
||||||
<ul id="ul1">
|
<ul id="ul1">
|
||||||
<li class="ation-li" v-for="(item, index) in props.dataE" :key="index" ref="cards">
|
<li class="ation-li" v-for="(item, index) in props.dataE" :key="index" ref="cards">
|
||||||
<div class="pt10px pb10px text-15px title">{{item.title}}</div>
|
<div class="pt10px pb10px text-15px title">{{ item.title }}</div>
|
||||||
<div class="text-12px leading-15px sub-title" @click="downloadHandle(item)">{{item.content}}</div>
|
<div class="text-12px leading-15px sub-title" @click="downloadHandle(item)">
|
||||||
|
{{ item.content }}
|
||||||
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<div id="earth" class="earth"></div>
|
<div id="earth" class="earth"></div>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -19,86 +20,80 @@ const downloadHandle = (item) => {
|
||||||
emit('downloadHandle', item, 5)
|
emit('downloadHandle', item, 5)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
const props = defineProps({//对象写法
|
//对象写法
|
||||||
dataE:{
|
dataE: {
|
||||||
type:Array,//接受的数据类型
|
type: Array, //接受的数据类型
|
||||||
default:[],//接受默认数据
|
default: [] //接受默认数据
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const numCards = ref(10)
|
||||||
|
const mouseX = ref(0)
|
||||||
const numCards = ref(10);
|
const mouseY = ref(0)
|
||||||
const mouseX = ref(0);
|
const isDragging = ref(false)
|
||||||
const mouseY = ref(0);
|
|
||||||
const isDragging = ref(false);
|
|
||||||
|
|
||||||
const handleMouseMove = (event) => {
|
const handleMouseMove = (event) => {
|
||||||
const rect = event.currentTarget.getBoundingClientRect();
|
const rect = event.currentTarget?.getBoundingClientRect()
|
||||||
mouseX.value = event.clientX - rect.left;
|
mouseX.value = event.clientX - rect.left
|
||||||
mouseY.value = event.clientY - rect.top;
|
mouseY.value = event.clientY - rect.top
|
||||||
};
|
}
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => props.dataE,
|
() => props.dataE,
|
||||||
(newValue, oldValue) => {
|
(newValue, oldValue) => {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
updateRotation();
|
updateRotation()
|
||||||
// autoRotate();
|
// autoRotate();
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
const updateRotation = () => {
|
const updateRotation = () => {
|
||||||
const cardRefs = ref([]);
|
const cardRefs = ref([])
|
||||||
const earth = ref(null);
|
const earth = ref(null)
|
||||||
|
|
||||||
cardRefs.value = document.querySelectorAll('#ul1 li');
|
cardRefs.value = document.querySelectorAll('#ul1 li')
|
||||||
earth.value = document.getElementById('earth');
|
earth.value = document.getElementById('earth')
|
||||||
console.log(cardRefs, 1111)
|
console.log(cardRefs, 1111)
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
numCards.value = cardRefs.value.length;
|
numCards.value = cardRefs.value.length
|
||||||
cardRefs.value.forEach((card, index) => {
|
cardRefs.value.forEach((card, index) => {
|
||||||
const d = (360 / numCards.value) * index + mouseX.value / 10;
|
const d = (360 / numCards.value) * index + mouseX.value / 10
|
||||||
let radian = d * Math.PI / 180;
|
let radian = (d * Math.PI) / 180
|
||||||
let opacity = (Math.cos(radian) + 1) / 2;
|
let opacity = (Math.cos(radian) + 1) / 2
|
||||||
card.style.transform = `rotateY(${d}deg) translateZ(280px) rotateY(${-d}deg)`;
|
card.style.transform = `rotateY(${d}deg) translateZ(280px) rotateY(${-d}deg)`
|
||||||
card.style.opacity = opacity * opacity;
|
card.style.opacity = opacity * opacity
|
||||||
|
|
||||||
if (Math.abs(d) < 30) {
|
if (Math.abs(d) < 30) {
|
||||||
card.style.zIndex = 2;
|
card.style.zIndex = 2
|
||||||
if (earth.value) {
|
if (earth.value) {
|
||||||
earth.value.style.transform = 'translateZ(-400px)';
|
earth.value.style.transform = 'translateZ(-400px)'
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
card.style.zIndex = -1;
|
card.style.zIndex = -1
|
||||||
if (earth.value) {
|
if (earth.value) {
|
||||||
earth.value.style.transform = 'translateZ(400px)';
|
earth.value.style.transform = 'translateZ(400px)'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}, 30);
|
}, 30)
|
||||||
};
|
}
|
||||||
|
|
||||||
const autoRotate = () => {
|
const autoRotate = () => {
|
||||||
const interval = setInterval(() => {
|
const interval = setInterval(() => {
|
||||||
if (!isDragging.value) {
|
if (!isDragging.value) {
|
||||||
// 自动旋转的速度
|
// 自动旋转的速度
|
||||||
mouseY.value += 1;
|
mouseY.value += 1
|
||||||
}
|
}
|
||||||
}, 30);
|
}, 30)
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
clearInterval(interval);
|
clearInterval(interval)
|
||||||
});
|
})
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
* {
|
* {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
@ -135,15 +130,14 @@ body {
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
// background: rgba(14, 116, 238, 0.8);
|
// background: rgba(14, 116, 238, 0.8);
|
||||||
background-image: url("./images/biaoq.png");
|
background-image: url('./images/biaoq.png');
|
||||||
color: rgb(255, 255, 255);
|
color: rgb(255, 255, 255);
|
||||||
line-height: 10px;
|
line-height: 10px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 8px 8px 40px;
|
padding: 8px 8px 40px;
|
||||||
/* font-size: 30px; */
|
/* font-size: 30px; */
|
||||||
p{
|
p {
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -176,7 +170,7 @@ body {
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
.sub-title {
|
.sub-title {
|
||||||
color: #00E4FF;
|
color: #00e4ff;
|
||||||
text-align: start;
|
text-align: start;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,9 @@ const store = useUserStore()
|
||||||
|
|
||||||
const { push } = useRouter()
|
const { push } = useRouter()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const userCode = ['admin', 'csr_dandang', 'tech_service'].includes(store.user.roleCode)
|
const userCode = ['admin', 'csr_dandang', 'tech_service'].some((item) =>
|
||||||
|
store.user.roleCode?.includes(item)
|
||||||
|
)
|
||||||
const Navs = [
|
const Navs = [
|
||||||
{ name: '集团*部门方针' },
|
{ name: '集团*部门方针' },
|
||||||
{ name: '年度活动日程表' },
|
{ name: '年度活动日程表' },
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,9 @@ import ModifyB from './modifyB.vue'
|
||||||
import { message } from '@/utils/message';
|
import { message } from '@/utils/message';
|
||||||
import { useUserStore } from '@/stores/modules/user'
|
import { useUserStore } from '@/stores/modules/user'
|
||||||
const store = useUserStore()
|
const store = useUserStore()
|
||||||
const userCode = ['admin','csr_dandang','tech_service'].includes(store.user.roleCode)
|
const userCode = ['admin','csr_dandang','tech_service'].some((item) =>
|
||||||
|
store.user.roleCode?.includes(item)
|
||||||
|
)
|
||||||
|
|
||||||
const { chartRef, option } = charData()
|
const { chartRef, option } = charData()
|
||||||
const { chartRef: chartRefP1, option: optionP1 } = pieData1()
|
const { chartRef: chartRefP1, option: optionP1 } = pieData1()
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@ const store = useUserStore()
|
||||||
const { push } = useRouter()
|
const { push } = useRouter()
|
||||||
|
|
||||||
const message = useMessage()
|
const message = useMessage()
|
||||||
const userCode = ['admin', 'csr_dandang', 'tech_service'].includes(
|
const userCode = ['admin', 'csr_dandang', 'tech_service'].some((item) =>
|
||||||
store.user.roleCode
|
store.user.roleCode?.includes(item)
|
||||||
)
|
)
|
||||||
const swipeRef = ref<any>(null)
|
const swipeRef = ref<any>(null)
|
||||||
const dataList = ref([])
|
const dataList = ref([])
|
||||||
|
|
@ -85,9 +85,7 @@ const openUrl = async (url) => {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
srcType.value = getLastSubstring(url)
|
srcType.value = getLastSubstring(url)
|
||||||
if (
|
if (['doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'pdf'].includes(srcType.value)) {
|
||||||
['doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'pdf'].includes(srcType.value)
|
|
||||||
) {
|
|
||||||
// src.value = filePath
|
// src.value = filePath
|
||||||
// pdfShow.value = true
|
// pdfShow.value = true
|
||||||
url = 'https://view.xdocin.com/view?src=' + url
|
url = 'https://view.xdocin.com/view?src=' + url
|
||||||
|
|
@ -96,19 +94,10 @@ const openUrl = async (url) => {
|
||||||
window.open(
|
window.open(
|
||||||
url,
|
url,
|
||||||
'',
|
'',
|
||||||
'width=' +
|
'width=' + screenWidth + ',height=' + screenHeight + ',top=' + 0 + ',left=' + 0
|
||||||
screenWidth +
|
|
||||||
',height=' +
|
|
||||||
screenHeight +
|
|
||||||
',top=' +
|
|
||||||
0 +
|
|
||||||
',left=' +
|
|
||||||
0
|
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
message.error(
|
message.error("文件格式不是 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx','pdf'!")
|
||||||
"文件格式不是 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx','pdf'!"
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function getLastSubstring(str: string): string {
|
function getLastSubstring(str: string): string {
|
||||||
|
|
@ -126,9 +115,7 @@ const toDetail = (obj) => {
|
||||||
message.info('没有访问权限')
|
message.info('没有访问权限')
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
obj.filePath?.[0]?.url
|
obj.filePath?.[0]?.url ? openUrl(obj.filePath[0].url) : message.info('没有可预览文件!')
|
||||||
? openUrl(obj.filePath[0].url)
|
|
||||||
: message.info('没有可预览文件!')
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
async function down(data: {
|
async function down(data: {
|
||||||
|
|
@ -185,8 +172,7 @@ const handleVisitsScoll = () => {
|
||||||
// if(pageNum >= 1) return
|
// if(pageNum >= 1) return
|
||||||
const container = msgScoll.value
|
const container = msgScoll.value
|
||||||
if (container) {
|
if (container) {
|
||||||
const isAtBottom =
|
const isAtBottom = container.scrollHeight - container.scrollTop === container.clientHeight
|
||||||
container.scrollHeight - container.scrollTop === container.clientHeight
|
|
||||||
if (isAtBottom) {
|
if (isAtBottom) {
|
||||||
if (pageNum < maxMsgLingth) {
|
if (pageNum < maxMsgLingth) {
|
||||||
++pageNum
|
++pageNum
|
||||||
|
|
@ -218,9 +204,7 @@ const scroll = ({ scrollTop }: any) => {
|
||||||
>
|
>
|
||||||
PLUS活动相关
|
PLUS活动相关
|
||||||
</div>
|
</div>
|
||||||
<el-button v-if="userCode" type="primary" class="button" @click="shomks"
|
<el-button v-if="userCode" type="primary" class="button" @click="shomks">管理</el-button>
|
||||||
>管理</el-button
|
|
||||||
>
|
|
||||||
<div class="text-#142142 text-20px font-extrabold flex p20px">
|
<div class="text-#142142 text-20px font-extrabold flex p20px">
|
||||||
<!-- <div class=""></div> -->
|
<!-- <div class=""></div> -->
|
||||||
<div class="w-70% text-24px font-bold p20px pb-0px">
|
<div class="w-70% text-24px font-bold p20px pb-0px">
|
||||||
|
|
@ -233,10 +217,7 @@ const scroll = ({ scrollTop }: any) => {
|
||||||
@click="push({ name: 'modifyCsrList' })"
|
@click="push({ name: 'modifyCsrList' })"
|
||||||
class="w-145px px15px text-#fff !rd-22px !bg-gradient-to-r !from-#34a6d9/90 !to-#23d1c6/70 p10px"
|
class="w-145px px15px text-#fff !rd-22px !bg-gradient-to-r !from-#34a6d9/90 !to-#23d1c6/70 p10px"
|
||||||
>
|
>
|
||||||
查看更多<img
|
查看更多<img src="../../../assets/images/ckgduo@2x.png" class="w25px ml-10px mt--5px" />
|
||||||
src="../../../assets/images/ckgduo@2x.png"
|
|
||||||
class="w25px ml-10px mt--5px"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -342,16 +323,10 @@ const scroll = ({ scrollTop }: any) => {
|
||||||
>
|
>
|
||||||
<div class="max-w500px text-16px flex flex-col">
|
<div class="max-w500px text-16px flex flex-col">
|
||||||
<div class="flex items-center max-w-[84%]">
|
<div class="flex items-center max-w-[84%]">
|
||||||
<img
|
<img src="../../../assets/images/lvbiao@2x.png" class="mr-5px" />
|
||||||
src="../../../assets/images/lvbiao@2x.png"
|
|
||||||
class="mr-5px"
|
|
||||||
/>
|
|
||||||
<n-popover trigger="hover" placement="top-start">
|
<n-popover trigger="hover" placement="top-start">
|
||||||
<template #trigger>
|
<template #trigger>
|
||||||
<span
|
<span class="truncate text-18px !min-w-[auto]" @click="toDetail(i)">
|
||||||
class="truncate text-18px !min-w-[auto]"
|
|
||||||
@click="toDetail(i)"
|
|
||||||
>
|
|
||||||
{{ i.filePath[0]?.originalFileName }}
|
{{ i.filePath[0]?.originalFileName }}
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -365,11 +340,7 @@ const scroll = ({ scrollTop }: any) => {
|
||||||
title="查看更多"
|
title="查看更多"
|
||||||
@click="toDetail(i)"
|
@click="toDetail(i)"
|
||||||
class="absolute cursor-pointer right--14px top-0px w60px pt-3px flex items-center ml-auto text-right"
|
class="absolute cursor-pointer right--14px top-0px w60px pt-3px flex items-center ml-auto text-right"
|
||||||
style="
|
style="color: #4d7ee8; text-align: center; font-size: 16px"
|
||||||
color: #4d7ee8;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 16px;
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
更多<el-icon>
|
更多<el-icon>
|
||||||
<DArrowRight class="" />
|
<DArrowRight class="" />
|
||||||
|
|
@ -421,12 +392,7 @@ const scroll = ({ scrollTop }: any) => {
|
||||||
</el-icon>
|
</el-icon>
|
||||||
</div> -->
|
</div> -->
|
||||||
<span
|
<span
|
||||||
style="
|
style="border: #417bef 1px solid; color: #417bef; border-radius: 5px; height: 30px"
|
||||||
border: #417bef 1px solid;
|
|
||||||
color: #417bef;
|
|
||||||
border-radius: 5px;
|
|
||||||
height: 30px;
|
|
||||||
"
|
|
||||||
class="absolute right-25px top-16px w80px h50px flex justify-center items-center cursor-pointer"
|
class="absolute right-25px top-16px w80px h50px flex justify-center items-center cursor-pointer"
|
||||||
@click="push({ name: 'CSRList' })"
|
@click="push({ name: 'CSRList' })"
|
||||||
>更多<el-icon> <DArrowRight class="" /> </el-icon
|
>更多<el-icon> <DArrowRight class="" /> </el-icon
|
||||||
|
|
@ -436,13 +402,7 @@ const scroll = ({ scrollTop }: any) => {
|
||||||
ref="msgScoll"
|
ref="msgScoll"
|
||||||
class="px20px h280px cent_box overflow-y-scroll"
|
class="px20px h280px cent_box overflow-y-scroll"
|
||||||
> -->
|
> -->
|
||||||
<el-scrollbar
|
<el-scrollbar class="px20px" ref="" height="280px" always @scroll="scroll">
|
||||||
class="px20px"
|
|
||||||
ref=""
|
|
||||||
height="280px"
|
|
||||||
always
|
|
||||||
@scroll="scroll"
|
|
||||||
>
|
|
||||||
<!-- <div class="text-#808696 bg-#F4F8FF py10px rd-5px mt10px" v-for="(i, key) in dataList" :key="i"> -->
|
<!-- <div class="text-#808696 bg-#F4F8FF py10px rd-5px mt10px" v-for="(i, key) in dataList" :key="i"> -->
|
||||||
<div
|
<div
|
||||||
class="text-#808696 bg-#F4F8FF py10px rd-5px mt10px"
|
class="text-#808696 bg-#F4F8FF py10px rd-5px mt10px"
|
||||||
|
|
@ -450,10 +410,9 @@ const scroll = ({ scrollTop }: any) => {
|
||||||
:key="i"
|
:key="i"
|
||||||
>
|
>
|
||||||
<div class="truncate2 flex items-center" @click="toDetail(i)">
|
<div class="truncate2 flex items-center" @click="toDetail(i)">
|
||||||
<span
|
<span class="text-#fff bg-#407DF1 px5px text-18px rounded-20px mr-5px inlineFlex">{{
|
||||||
class="text-#fff bg-#407DF1 px5px text-18px rounded-20px mr-5px inlineFlex"
|
++key
|
||||||
>{{ ++key }}</span
|
}}</span>
|
||||||
>
|
|
||||||
<span class="text-18px mr-2">{{ i.title }}</span>
|
<span class="text-18px mr-2">{{ i.title }}</span>
|
||||||
<img
|
<img
|
||||||
v-if="isNotOneWeekAgo(i.createTime)"
|
v-if="isNotOneWeekAgo(i.createTime)"
|
||||||
|
|
@ -462,9 +421,7 @@ const scroll = ({ scrollTop }: any) => {
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<span class="absolute right-10px top-24px text-18px">{{
|
<span class="absolute right-10px top-24px text-18px">{{ i.createTime }}</span>
|
||||||
i.createTime
|
|
||||||
}}</span>
|
|
||||||
</div>
|
</div>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
<!-- </div> -->
|
<!-- </div> -->
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,8 @@ const listData = ref<any>([])
|
||||||
const message = useMessage()
|
const message = useMessage()
|
||||||
const activeName = ref(1)
|
const activeName = ref(1)
|
||||||
const flg = ref(false)
|
const flg = ref(false)
|
||||||
const userCode = ['admin', 'database_dandang', 'tech_service'].includes(
|
const userCode = ['admin', 'database_dandang', 'tech_service'].some((item) =>
|
||||||
store2.user.roleCode
|
store2.user.roleCode?.includes(item)
|
||||||
)
|
)
|
||||||
const isDbReview = computed(() => !!user?.isDbReview)
|
const isDbReview = computed(() => !!user?.isDbReview)
|
||||||
const isDbUpload = computed(() => !!user?.isDbUpload)
|
const isDbUpload = computed(() => !!user?.isDbUpload)
|
||||||
|
|
@ -60,9 +60,7 @@ const handleDialogConfirm = async () => {
|
||||||
}
|
}
|
||||||
const handleCommand = (command: number, row: any) => {
|
const handleCommand = (command: number, row: any) => {
|
||||||
selCommand.value = command
|
selCommand.value = command
|
||||||
dialogText.value = `确认${command === 2 ? '通过' : '驳回'}标题为 ${
|
dialogText.value = `确认${command === 2 ? '通过' : '驳回'}标题为 ${row.title} 的文件发布吗?`
|
||||||
row.title
|
|
||||||
} 的文件发布吗?`
|
|
||||||
dialogVisible.value = true
|
dialogVisible.value = true
|
||||||
selItemId.value = row.id
|
selItemId.value = row.id
|
||||||
}
|
}
|
||||||
|
|
@ -203,19 +201,10 @@ const openUrl = async (it: any) => {
|
||||||
window.open(
|
window.open(
|
||||||
filePath,
|
filePath,
|
||||||
'',
|
'',
|
||||||
'width=' +
|
'width=' + screenWidth + ',height=' + screenHeight + ',top=' + 0 + ',left=' + 0
|
||||||
screenWidth +
|
|
||||||
',height=' +
|
|
||||||
screenHeight +
|
|
||||||
',top=' +
|
|
||||||
0 +
|
|
||||||
',left=' +
|
|
||||||
0
|
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
message.error(
|
message.error("文件格式不是 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx','pdf'!")
|
||||||
"文件格式不是 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx','pdf'!"
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function getLastSubstring(str: string): string {
|
function getLastSubstring(str: string): string {
|
||||||
|
|
@ -433,25 +422,13 @@ function getParentIds(id: number, list: any[] = tableData.value): any {
|
||||||
hasChildren: 'hasChildren'
|
hasChildren: 'hasChildren'
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<el-table-column
|
<el-table-column prop="cateName" label="所属分类" show-overflow-tooltip>
|
||||||
prop="cateName"
|
|
||||||
label="所属分类"
|
|
||||||
show-overflow-tooltip
|
|
||||||
>
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column prop="title" label="标题名称" show-overflow-tooltip />
|
||||||
prop="title"
|
|
||||||
label="标题名称"
|
|
||||||
show-overflow-tooltip
|
|
||||||
/>
|
|
||||||
<el-table-column prop="deptName" label="上传科室" />
|
<el-table-column prop="deptName" label="上传科室" />
|
||||||
<el-table-column prop="parentDeptName" label="上传部门" />
|
<el-table-column prop="parentDeptName" label="上传部门" />
|
||||||
<el-table-column prop="createTime" label="上传日期" />
|
<el-table-column prop="createTime" label="上传日期" />
|
||||||
<el-table-column
|
<el-table-column label="文件列表" prop="filePath" show-overflow-tooltip />
|
||||||
label="文件列表"
|
|
||||||
prop="filePath"
|
|
||||||
show-overflow-tooltip
|
|
||||||
/>
|
|
||||||
<!-- <el-table-column label="排序" prop="sort" show-overflow-tooltip/> -->
|
<!-- <el-table-column label="排序" prop="sort" show-overflow-tooltip/> -->
|
||||||
<el-table-column label="查看范围" prop="userIdList">
|
<el-table-column label="查看范围" prop="userIdList">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
|
@ -467,9 +444,7 @@ function getParentIds(id: number, list: any[] = tableData.value): any {
|
||||||
<div class="descStyle max-w-60vw !h-46px">
|
<div class="descStyle max-w-60vw !h-46px">
|
||||||
<p
|
<p
|
||||||
v-for="(it, e) in scope.row.userList"
|
v-for="(it, e) in scope.row.userList"
|
||||||
:class="
|
:class="scope.row.userList.length < 2 ? '!leading-46px' : ''"
|
||||||
scope.row.userList.length < 2 ? '!leading-46px' : ''
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
{{ it.nickName }}
|
{{ it.nickName }}
|
||||||
<span v-if="e == 1 && scope.row.userList.length > 2"
|
<span v-if="e == 1 && scope.row.userList.length > 2"
|
||||||
|
|
@ -493,21 +468,11 @@ function getParentIds(id: number, list: any[] = tableData.value): any {
|
||||||
v-if="(row.fileCommon?.fileSize || 0) > 25 * 1024 * 1024"
|
v-if="(row.fileCommon?.fileSize || 0) > 25 * 1024 * 1024"
|
||||||
>
|
>
|
||||||
<template #trigger>
|
<template #trigger>
|
||||||
<el-button style="color: #000" @click="downloads(row)"
|
<el-button style="color: #000" @click="downloads(row)">查看</el-button>
|
||||||
>查看</el-button
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
<span
|
<span>该文件超过25MB,无法进行预览,请点击 查看 进行下载!</span>
|
||||||
>该文件超过25MB,无法进行预览,请点击 查看
|
|
||||||
进行下载!</span
|
|
||||||
>
|
|
||||||
</n-popover>
|
</n-popover>
|
||||||
<el-button
|
<el-button v-else style="color: #000" @click="downloads(row)">查看</el-button>
|
||||||
v-else
|
|
||||||
style="color: #000"
|
|
||||||
@click="downloads(row)"
|
|
||||||
>查看</el-button
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown
|
<el-dropdown
|
||||||
v-if="activeName === 1 && isDbReview"
|
v-if="activeName === 1 && isDbReview"
|
||||||
|
|
@ -524,13 +489,8 @@ function getParentIds(id: number, list: any[] = tableData.value): any {
|
||||||
</el-button>
|
</el-button>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
<el-dropdown-item :command="2" :icon="Check"
|
<el-dropdown-item :command="2" :icon="Check">同意</el-dropdown-item>
|
||||||
>同意</el-dropdown-item
|
<el-dropdown-item :command="3" :icon="Close" type="danger"
|
||||||
>
|
|
||||||
<el-dropdown-item
|
|
||||||
:command="3"
|
|
||||||
:icon="Close"
|
|
||||||
type="danger"
|
|
||||||
>驳回</el-dropdown-item
|
>驳回</el-dropdown-item
|
||||||
>
|
>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
|
|
@ -544,17 +504,10 @@ function getParentIds(id: number, list: any[] = tableData.value): any {
|
||||||
>
|
>
|
||||||
编辑</el-button
|
编辑</el-button
|
||||||
>
|
>
|
||||||
<template
|
<template v-if="(activeName === 1 || activeName === 3) && isDbUpload">
|
||||||
v-if="(activeName === 1 || activeName === 3) && isDbUpload"
|
<el-popconfirm title="确认撤回该文件?" @confirm="handleWithdraw(row)">
|
||||||
>
|
|
||||||
<el-popconfirm
|
|
||||||
title="确认撤回该文件?"
|
|
||||||
@confirm="handleWithdraw(row)"
|
|
||||||
>
|
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button class="ml-16px" type="danger">
|
<el-button class="ml-16px" type="danger"> 撤回</el-button>
|
||||||
撤回</el-button
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</el-popconfirm>
|
</el-popconfirm>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -606,30 +559,20 @@ function getParentIds(id: number, list: any[] = tableData.value): any {
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
<el-dropdown-item v-if="i.firstReviewName">
|
<el-dropdown-item v-if="i.firstReviewName">
|
||||||
<div class="ml20px text-#808696 !text-12px flex">
|
<div class="ml20px text-#808696 !text-12px flex">
|
||||||
<span class="min-w120px"
|
<span class="min-w120px">初审人:{{ i.firstReviewName }}</span>
|
||||||
>初审人:{{ i.firstReviewName }}</span
|
<span class="ml20px">初审时间:{{ i.firstReviewTime }}</span>
|
||||||
>
|
|
||||||
<span class="ml20px"
|
|
||||||
>初审时间:{{ i.firstReviewTime }}</span
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="i.ultimateReviewName">
|
<el-dropdown-item v-if="i.ultimateReviewName">
|
||||||
<div class="ml20px text-#808696 !text-12px flex">
|
<div class="ml20px text-#808696 !text-12px flex">
|
||||||
<span class="min-w120px"
|
<span class="min-w120px">终审人:{{ i.ultimateReviewName }}</span>
|
||||||
>终审人:{{ i.ultimateReviewName }}</span
|
<span class="ml20px">终审时间:{{ i.ultimateReviewTime }}</span>
|
||||||
>
|
|
||||||
<span class="ml20px"
|
|
||||||
>终审时间:{{ i.ultimateReviewTime }}</span
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</template>
|
</template>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
<span class="shrink-0 ml38px text-#808696 w220px">{{
|
<span class="shrink-0 ml38px text-#808696 w220px">{{ i.createTime }}</span>
|
||||||
i.createTime
|
|
||||||
}}</span>
|
|
||||||
<span
|
<span
|
||||||
v-if="store2.user.isReview > 0 && i.publishName"
|
v-if="store2.user.isReview > 0 && i.publishName"
|
||||||
class="ml20px text-#808696 text-16px flex-1"
|
class="ml20px text-#808696 text-16px flex-1"
|
||||||
|
|
@ -642,11 +585,7 @@ function getParentIds(id: number, list: any[] = tableData.value): any {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<n-modal v-model:show="showModal">
|
<n-modal v-model:show="showModal">
|
||||||
<UserList
|
<UserList :userDataList="setUserList" @clickChild="handleChild" @CloseThis="CloseThiss" />
|
||||||
:userDataList="setUserList"
|
|
||||||
@clickChild="handleChild"
|
|
||||||
@CloseThis="CloseThiss"
|
|
||||||
/>
|
|
||||||
</n-modal>
|
</n-modal>
|
||||||
<NModal v-model:show="shomk" :z-index="99999">
|
<NModal v-model:show="shomk" :z-index="99999">
|
||||||
<div class="bg-#FFF p30px">
|
<div class="bg-#FFF p30px">
|
||||||
|
|
@ -695,34 +634,19 @@ function getParentIds(id: number, list: any[] = tableData.value): any {
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<br />
|
<br />
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<el-button type="primary" @click="handleEditClick" class="mb-20px">
|
<el-button type="primary" @click="handleEditClick" class="mb-20px"> 确认</el-button>
|
||||||
确认</el-button
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</NModal>
|
</NModal>
|
||||||
<el-dialog
|
<el-dialog v-model="dialogVisible" title="提示" width="30%" top="40vh" center>
|
||||||
v-model="dialogVisible"
|
|
||||||
title="提示"
|
|
||||||
width="30%"
|
|
||||||
top="40vh"
|
|
||||||
center
|
|
||||||
>
|
|
||||||
<span class="text-18px">
|
<span class="text-18px">
|
||||||
{{ dialogText }}
|
{{ dialogText }}
|
||||||
</span>
|
</span>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button size="large" @click="dialogVisible = false"
|
<el-button size="large" @click="dialogVisible = false">取消</el-button>
|
||||||
>取消</el-button
|
<el-button class="!ml-50px" size="large" type="primary" @click="handleDialogConfirm">
|
||||||
>
|
|
||||||
<el-button
|
|
||||||
class="!ml-50px"
|
|
||||||
size="large"
|
|
||||||
type="primary"
|
|
||||||
@click="handleDialogConfirm"
|
|
||||||
>
|
|
||||||
确认
|
确认
|
||||||
</el-button>
|
</el-button>
|
||||||
</span>
|
</span>
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import { isNotOneWeekAgo } from '@/utils'
|
||||||
|
|
||||||
const store: any = useUserStore()
|
const store: any = useUserStore()
|
||||||
const message = useMessage()
|
const message = useMessage()
|
||||||
const userCode = ['admin', 'database_dandang'].includes(store.user.roleCode)
|
const userCode = ['admin', 'database_dandang'].some((item) => store.user.roleCode?.includes(item))
|
||||||
const isDbReview = store.user?.isDbReview === 1
|
const isDbReview = store.user?.isDbReview === 1
|
||||||
const isDbUpload = store.user?.isDbUpload === 1
|
const isDbUpload = store.user?.isDbUpload === 1
|
||||||
const user: any = store.user
|
const user: any = store.user
|
||||||
|
|
@ -132,9 +132,7 @@ const openUrl = async (it) => {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
srcType.value = getLastSubstring(filePath)
|
srcType.value = getLastSubstring(filePath)
|
||||||
if (
|
if (['doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'pdf'].includes(srcType.value)) {
|
||||||
['doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'pdf'].includes(srcType.value)
|
|
||||||
) {
|
|
||||||
// src.value = filePath
|
// src.value = filePath
|
||||||
// pdfShow.value = true
|
// pdfShow.value = true
|
||||||
filePath = 'https://view.xdocin.com/view?src=' + filePath
|
filePath = 'https://view.xdocin.com/view?src=' + filePath
|
||||||
|
|
@ -143,19 +141,10 @@ const openUrl = async (it) => {
|
||||||
window.open(
|
window.open(
|
||||||
filePath,
|
filePath,
|
||||||
'',
|
'',
|
||||||
'width=' +
|
'width=' + screenWidth + ',height=' + screenHeight + ',top=' + 0 + ',left=' + 0
|
||||||
screenWidth +
|
|
||||||
',height=' +
|
|
||||||
screenHeight +
|
|
||||||
',top=' +
|
|
||||||
0 +
|
|
||||||
',left=' +
|
|
||||||
0
|
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
message.error(
|
message.error("文件格式不是 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx','pdf'!")
|
||||||
"文件格式不是 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx','pdf'!"
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function getLastSubstring(str: string): string {
|
function getLastSubstring(str: string): string {
|
||||||
|
|
@ -233,17 +222,9 @@ async function getAuth() {
|
||||||
|
|
||||||
</div> -->
|
</div> -->
|
||||||
<div class="bg-#fff rd-15px px30px pt30px w-full h930px">
|
<div class="bg-#fff rd-15px px30px pt30px w-full h930px">
|
||||||
<div
|
<div class="rd-15px w-full h870px" style="box-shadow: 1px 2px 26px -3px #cdcccc">
|
||||||
class="rd-15px w-full h870px"
|
<div class="h80px rd-t-15px bg-#4877FB leading-80px text-#fff text-20px">
|
||||||
style="box-shadow: 1px 2px 26px -3px #cdcccc"
|
<img src="@/assets/images/Shape7@2x.png" class="w50px ml-30px mr10px mt--20px" />
|
||||||
>
|
|
||||||
<div
|
|
||||||
class="h80px rd-t-15px bg-#4877FB leading-80px text-#fff text-20px"
|
|
||||||
>
|
|
||||||
<img
|
|
||||||
src="@/assets/images/Shape7@2x.png"
|
|
||||||
class="w50px ml-30px mr10px mt--20px"
|
|
||||||
/>
|
|
||||||
{{ title }}
|
{{ title }}
|
||||||
<div class="float-right top-0 right-30px">
|
<div class="float-right top-0 right-30px">
|
||||||
<el-button
|
<el-button
|
||||||
|
|
@ -277,28 +258,16 @@ async function getAuth() {
|
||||||
>
|
>
|
||||||
<tr class="text-20px leading-50px">
|
<tr class="text-20px leading-50px">
|
||||||
<th width="20%">
|
<th width="20%">
|
||||||
<img
|
<img src="@/assets/images/baiot@2x.png" class="w35px mt--7px mr-5px" />标题
|
||||||
src="@/assets/images/baiot@2x.png"
|
|
||||||
class="w35px mt--7px mr-5px"
|
|
||||||
/>标题
|
|
||||||
</th>
|
</th>
|
||||||
<th width="20%">
|
<th width="20%">
|
||||||
<img
|
<img src="@/assets/images/scbmm@2x.png" class="w35px mt--7px mr-5px" />上传科室
|
||||||
src="@/assets/images/scbmm@2x.png"
|
|
||||||
class="w35px mt--7px mr-5px"
|
|
||||||
/>上传科室
|
|
||||||
</th>
|
</th>
|
||||||
<th width="20%">
|
<th width="20%">
|
||||||
<img
|
<img src="@/assets/images/scbmm@2x.png" class="w35px mt--7px mr-5px" />上传部门
|
||||||
src="@/assets/images/scbmm@2x.png"
|
|
||||||
class="w35px mt--7px mr-5px"
|
|
||||||
/>上传部门
|
|
||||||
</th>
|
</th>
|
||||||
<th width="20%">
|
<th width="20%">
|
||||||
<img
|
<img src="@/assets/images/riqii@2x.png" class="w35px mt--7px mr-5px" />上传日期
|
||||||
src="@/assets/images/riqii@2x.png"
|
|
||||||
class="w35px mt--7px mr-5px"
|
|
||||||
/>上传日期
|
|
||||||
</th>
|
</th>
|
||||||
<th width="20% text-center">操作</th>
|
<th width="20% text-center">操作</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
@ -327,24 +296,14 @@ async function getAuth() {
|
||||||
<n-popover
|
<n-popover
|
||||||
trigger="hover"
|
trigger="hover"
|
||||||
placement="top-start"
|
placement="top-start"
|
||||||
v-if="
|
v-if="arr.includes(it.id) || (it.fileCommon?.fileSize || 0) > 25 * 1024 * 1024"
|
||||||
arr.includes(it.id) ||
|
|
||||||
(it.fileCommon?.fileSize || 0) > 25 * 1024 * 1024
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
<template #trigger>
|
<template #trigger>
|
||||||
<el-button style="color: #000" @click="downloads(it)"
|
<el-button style="color: #000" @click="downloads(it)">查看</el-button>
|
||||||
>查看</el-button
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
<span
|
<span>该文件超过25MB,无法进行预览,请点击 查看 进行下载!</span>
|
||||||
>该文件超过25MB,无法进行预览,请点击 查看
|
|
||||||
进行下载!</span
|
|
||||||
>
|
|
||||||
</n-popover>
|
</n-popover>
|
||||||
<el-button v-else style="color: #000" @click="downloads(it)"
|
<el-button v-else style="color: #000" @click="downloads(it)">查看</el-button>
|
||||||
>查看</el-button
|
|
||||||
>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
@ -365,11 +324,7 @@ async function getAuth() {
|
||||||
</div>
|
</div>
|
||||||
<n-modal v-model:show="pdfShow">
|
<n-modal v-model:show="pdfShow">
|
||||||
<div class="w100% h100%">
|
<div class="w100% h100%">
|
||||||
<el-icon
|
<el-icon color="#fff" size="26px" @click="pdfShow = false" class="absolute left-92% bg-#F43"
|
||||||
color="#fff"
|
|
||||||
size="26px"
|
|
||||||
@click="pdfShow = false"
|
|
||||||
class="absolute left-92% bg-#F43"
|
|
||||||
><Close
|
><Close
|
||||||
/></el-icon>
|
/></el-icon>
|
||||||
<Amtion :data="src" :datas="srcType" />
|
<Amtion :data="src" :datas="srcType" />
|
||||||
|
|
|
||||||
|
|
@ -23,12 +23,7 @@
|
||||||
</div>
|
</div>
|
||||||
<el-tab-pane v-if="userCode" label="分类管理" name="first">
|
<el-tab-pane v-if="userCode" label="分类管理" name="first">
|
||||||
<div class="h-52px">
|
<div class="h-52px">
|
||||||
<el-button
|
<el-button v-if="userCode" type="primary" @click="editClickA('add')" class="mb-20px">
|
||||||
v-if="userCode"
|
|
||||||
type="primary"
|
|
||||||
@click="editClickA('add')"
|
|
||||||
class="mb-20px"
|
|
||||||
>
|
|
||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -56,36 +51,20 @@
|
||||||
<!-- <el-table-column prop="sort" label="排序" align="center"/> -->
|
<!-- <el-table-column prop="sort" label="排序" align="center"/> -->
|
||||||
<el-table-column prop="address" label="操作" align="center">
|
<el-table-column prop="address" label="操作" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button
|
<el-button type="primary" @click="editClickA('edit', scope.row)" class="my-10px">
|
||||||
type="primary"
|
|
||||||
@click="editClickA('edit', scope.row)"
|
|
||||||
class="my-10px"
|
|
||||||
>
|
|
||||||
编辑</el-button
|
编辑</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
type="success"
|
type="success"
|
||||||
v-if="
|
v-if="scope.row.level === 1 || scope.row.level === 2 || scope.row.level === 3"
|
||||||
scope.row.level === 1 ||
|
|
||||||
scope.row.level === 2 ||
|
|
||||||
scope.row.level === 3
|
|
||||||
"
|
|
||||||
@click="editClickA('add', scope.row)"
|
@click="editClickA('add', scope.row)"
|
||||||
class="my-10px"
|
class="my-10px"
|
||||||
>
|
>
|
||||||
新增{{
|
新增{{
|
||||||
scope.row.level === 1
|
scope.row.level === 1 ? '二' : scope.row.level === 2 ? '三' : '四'
|
||||||
? '二'
|
|
||||||
: scope.row.level === 2
|
|
||||||
? '三'
|
|
||||||
: '四'
|
|
||||||
}}级</el-button
|
}}级</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button type="danger" @click="deleteClickA(scope.row)" class="my-10px">
|
||||||
type="danger"
|
|
||||||
@click="deleteClickA(scope.row)"
|
|
||||||
class="my-10px"
|
|
||||||
>
|
|
||||||
删除</el-button
|
删除</el-button
|
||||||
>
|
>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -103,12 +82,7 @@
|
||||||
>
|
>
|
||||||
新增</el-button
|
新增</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button v-if="userCode" type="primary" @click="getAll" class="mb-20px">
|
||||||
v-if="userCode"
|
|
||||||
type="primary"
|
|
||||||
@click="getAll"
|
|
||||||
class="mb-20px"
|
|
||||||
>
|
|
||||||
查看所有</el-button
|
查看所有</el-button
|
||||||
>
|
>
|
||||||
<template v-if="false">
|
<template v-if="false">
|
||||||
|
|
@ -155,26 +129,14 @@
|
||||||
hasChildren: 'hasChildren'
|
hasChildren: 'hasChildren'
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<el-table-column
|
<el-table-column prop="cateName" label="所属分类" show-overflow-tooltip>
|
||||||
prop="cateName"
|
|
||||||
label="所属分类"
|
|
||||||
show-overflow-tooltip
|
|
||||||
>
|
|
||||||
<!-- <template #default="scope">
|
<!-- <template #default="scope">
|
||||||
<span v-if="scope.row.cateId==="></span>
|
<span v-if="scope.row.cateId==="></span>
|
||||||
</template> -->
|
</template> -->
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column prop="title" label="标题名称" show-overflow-tooltip />
|
||||||
prop="title"
|
|
||||||
label="标题名称"
|
|
||||||
show-overflow-tooltip
|
|
||||||
/>
|
|
||||||
<!-- <el-table-column prop="deptName" label="排序" /> -->
|
<!-- <el-table-column prop="deptName" label="排序" /> -->
|
||||||
<el-table-column
|
<el-table-column label="文件列表" prop="filePath" show-overflow-tooltip />
|
||||||
label="文件列表"
|
|
||||||
prop="filePath"
|
|
||||||
show-overflow-tooltip
|
|
||||||
/>
|
|
||||||
<!-- <el-table-column label="排序" prop="sort" show-overflow-tooltip/> -->
|
<!-- <el-table-column label="排序" prop="sort" show-overflow-tooltip/> -->
|
||||||
<el-table-column label="查看范围" prop="userIdList">
|
<el-table-column label="查看范围" prop="userIdList">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
|
@ -183,19 +145,12 @@
|
||||||
<!-- <span class="descStyle" v-if="scope.row.userList" v-for="it in scope.row.userList"> {{it.nickName}}</span> -->
|
<!-- <span class="descStyle" v-if="scope.row.userList" v-for="it in scope.row.userList"> {{it.nickName}}</span> -->
|
||||||
<!-- <span>{{ scope.row.userList }}</span> -->
|
<!-- <span>{{ scope.row.userList }}</span> -->
|
||||||
<p v-if="scope.row.userList.length">
|
<p v-if="scope.row.userList.length">
|
||||||
<el-tooltip
|
<el-tooltip :content="handTooltip(scope.row.userList)" placement="top">
|
||||||
:content="handTooltip(scope.row.userList)"
|
|
||||||
placement="top"
|
|
||||||
>
|
|
||||||
<div class="!h-50px descStyle">
|
<div class="!h-50px descStyle">
|
||||||
<div class="descStyle max-w-60vw !h-46px">
|
<div class="descStyle max-w-60vw !h-46px">
|
||||||
<p
|
<p
|
||||||
v-for="(it, e) in scope.row.userList"
|
v-for="(it, e) in scope.row.userList"
|
||||||
:class="
|
:class="scope.row.userList.length < 2 ? '!leading-46px' : 'xx'"
|
||||||
scope.row.userList.length < 2
|
|
||||||
? '!leading-46px'
|
|
||||||
: 'xx'
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
{{ it.nickName || undefined }}
|
{{ it.nickName || undefined }}
|
||||||
<span v-if="e == 1 && scope.row.userList.length > 2"
|
<span v-if="e == 1 && scope.row.userList.length > 2"
|
||||||
|
|
@ -209,11 +164,7 @@
|
||||||
<span v-else></span>
|
<span v-else></span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column prop="address" label="操作" show-overflow-tooltip>
|
||||||
prop="address"
|
|
||||||
label="操作"
|
|
||||||
show-overflow-tooltip
|
|
||||||
>
|
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div v-if="userCode || hasUpload || hasReview">
|
<div v-if="userCode || hasUpload || hasReview">
|
||||||
<el-button
|
<el-button
|
||||||
|
|
@ -223,19 +174,12 @@
|
||||||
>
|
>
|
||||||
编辑</el-button
|
编辑</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button type="danger" @click="deleteClickB(scope.row)" class="w45px my-10px">
|
||||||
type="danger"
|
|
||||||
@click="deleteClickB(scope.row)"
|
|
||||||
class="w45px my-10px"
|
|
||||||
>
|
|
||||||
删除</el-button
|
删除</el-button
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
style="float: right; margin: 10px 0"
|
style="float: right; margin: 10px 0"
|
||||||
v-if="
|
v-if="scope.$index !== 0 && scope.$index !== infoData.length - 1"
|
||||||
scope.$index !== 0 &&
|
|
||||||
scope.$index !== infoData.length - 1
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
style="color: #000; width: 45px; height: 33px"
|
style="color: #000; width: 45px; height: 33px"
|
||||||
|
|
@ -256,9 +200,7 @@
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div class="float-right absolute bottom-0px right-30px z-2000 bg-#fff">
|
||||||
class="float-right absolute bottom-0px right-30px z-2000 bg-#fff"
|
|
||||||
>
|
|
||||||
<el-pagination
|
<el-pagination
|
||||||
v-model:current-page="pageInfo.currentPage"
|
v-model:current-page="pageInfo.currentPage"
|
||||||
v-model:page-size="pageInfo.pageSize"
|
v-model:page-size="pageInfo.pageSize"
|
||||||
|
|
@ -271,11 +213,7 @@
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="权限管理" name="three" v-if="userCode">
|
<el-tab-pane label="权限管理" name="three" v-if="userCode">
|
||||||
<div class="h-52px">
|
<div class="h-52px">
|
||||||
<el-button
|
<el-button type="primary" @click="handleAuthClick('add')" class="mb-20px">
|
||||||
type="primary"
|
|
||||||
@click="handleAuthClick('add')"
|
|
||||||
class="mb-20px"
|
|
||||||
>
|
|
||||||
新增审批关系</el-button
|
新增审批关系</el-button
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -298,27 +236,12 @@
|
||||||
}"
|
}"
|
||||||
:cell-style="{ 'text-align': 'center', 'overflow-y': 'auto' }"
|
:cell-style="{ 'text-align': 'center', 'overflow-y': 'auto' }"
|
||||||
>
|
>
|
||||||
<el-table-column
|
<el-table-column prop="cateName" label="所属分类" show-overflow-tooltip>
|
||||||
prop="cateName"
|
|
||||||
label="所属分类"
|
|
||||||
show-overflow-tooltip
|
|
||||||
>
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column label="上传人员" prop="userIdList" show-overflow-tooltip>
|
||||||
label="上传人员"
|
|
||||||
prop="userIdList"
|
|
||||||
show-overflow-tooltip
|
|
||||||
>
|
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<p
|
<p v-if="scope.row.uploadList.length" class="truncate text-ellipsis">
|
||||||
v-if="scope.row.uploadList.length"
|
{{ scope.row.uploadList.map((item: any) => item.nickName).join('、') }}
|
||||||
class="truncate text-ellipsis"
|
|
||||||
>
|
|
||||||
{{
|
|
||||||
scope.row.uploadList
|
|
||||||
.map((item: any) => item.nickName)
|
|
||||||
.join('、')
|
|
||||||
}}
|
|
||||||
<el-tooltip
|
<el-tooltip
|
||||||
v-if="false"
|
v-if="false"
|
||||||
:content="handTooltip(scope.row.uploadList)"
|
:content="handTooltip(scope.row.uploadList)"
|
||||||
|
|
@ -329,15 +252,10 @@
|
||||||
<p
|
<p
|
||||||
v-for="(it, e) in scope.row.uploadList"
|
v-for="(it, e) in scope.row.uploadList"
|
||||||
:key="e"
|
:key="e"
|
||||||
:class="
|
:class="scope.row.uploadList.length < 2 ? '!leading-46px' : 'xx'"
|
||||||
scope.row.uploadList.length < 2
|
|
||||||
? '!leading-46px'
|
|
||||||
: 'xx'
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
{{ it.nickName || undefined }}
|
{{ it.nickName || undefined }}
|
||||||
<span
|
<span v-if="e == 1 && scope.row.uploadList.length > 2"
|
||||||
v-if="e == 1 && scope.row.uploadList.length > 2"
|
|
||||||
>...共{{ scope.row.uploadList.length }}人</span
|
>...共{{ scope.row.uploadList.length }}人</span
|
||||||
>
|
>
|
||||||
</p>
|
</p>
|
||||||
|
|
@ -348,21 +266,10 @@
|
||||||
<span v-else></span>
|
<span v-else></span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column label="审批人员" prop="userIdList" show-overflow-tooltip>
|
||||||
label="审批人员"
|
|
||||||
prop="userIdList"
|
|
||||||
show-overflow-tooltip
|
|
||||||
>
|
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<p
|
<p v-if="scope.row.reviewList.length" class="truncate text-ellipsis">
|
||||||
v-if="scope.row.reviewList.length"
|
{{ scope.row.reviewList.map((item: any) => item.nickName).join('、') }}
|
||||||
class="truncate text-ellipsis"
|
|
||||||
>
|
|
||||||
{{
|
|
||||||
scope.row.reviewList
|
|
||||||
.map((item: any) => item.nickName)
|
|
||||||
.join('、')
|
|
||||||
}}
|
|
||||||
<el-tooltip
|
<el-tooltip
|
||||||
v-if="false"
|
v-if="false"
|
||||||
:content="handTooltip(scope.row.reviewList)"
|
:content="handTooltip(scope.row.reviewList)"
|
||||||
|
|
@ -373,15 +280,10 @@
|
||||||
<p
|
<p
|
||||||
v-for="(it, e) in scope.row.reviewList"
|
v-for="(it, e) in scope.row.reviewList"
|
||||||
:key="e"
|
:key="e"
|
||||||
:class="
|
:class="scope.row.reviewList.length < 2 ? '!leading-46px' : 'xx'"
|
||||||
scope.row.reviewList.length < 2
|
|
||||||
? '!leading-46px'
|
|
||||||
: 'xx'
|
|
||||||
"
|
|
||||||
>
|
>
|
||||||
{{ it.nickName || undefined }}
|
{{ it.nickName || undefined }}
|
||||||
<span
|
<span v-if="e == 1 && scope.row.reviewList.length > 2"
|
||||||
v-if="e == 1 && scope.row.reviewList.length > 2"
|
|
||||||
>...共{{ scope.row.reviewList.length }}人</span
|
>...共{{ scope.row.reviewList.length }}人</span
|
||||||
>
|
>
|
||||||
</p>
|
</p>
|
||||||
|
|
@ -392,12 +294,7 @@
|
||||||
<span v-else></span>
|
<span v-else></span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column prop="address" label="操作" show-overflow-tooltip width="180px">
|
||||||
prop="address"
|
|
||||||
label="操作"
|
|
||||||
show-overflow-tooltip
|
|
||||||
width="180px"
|
|
||||||
>
|
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div>
|
<div>
|
||||||
<el-button
|
<el-button
|
||||||
|
|
@ -412,13 +309,7 @@
|
||||||
@confirm="handleAuthClick('del', scope.row)"
|
@confirm="handleAuthClick('del', scope.row)"
|
||||||
>
|
>
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button
|
<el-button type="danger" @click="" class="w45px my-10px"> 删除</el-button>
|
||||||
type="danger"
|
|
||||||
@click=""
|
|
||||||
class="w45px my-10px"
|
|
||||||
>
|
|
||||||
删除</el-button
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</el-popconfirm>
|
</el-popconfirm>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -427,9 +318,7 @@
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div class="float-right absolute bottom-0px right-30px z-2000 bg-#fff">
|
||||||
class="float-right absolute bottom-0px right-30px z-2000 bg-#fff"
|
|
||||||
>
|
|
||||||
<el-pagination
|
<el-pagination
|
||||||
v-model:current-page="pageInfo.currentPage"
|
v-model:current-page="pageInfo.currentPage"
|
||||||
v-model:page-size="pageInfo.pageSize"
|
v-model:page-size="pageInfo.pageSize"
|
||||||
|
|
@ -454,9 +343,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<br />
|
<br />
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<el-button type="primary" @click="addClickA(editA)" class="mb-20px">
|
<el-button type="primary" @click="addClickA(editA)" class="mb-20px"> 确认</el-button>
|
||||||
确认</el-button
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -507,9 +394,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<br />
|
<br />
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<el-button type="primary" @click="addClickB(editB)" class="mb-20px">
|
<el-button type="primary" @click="addClickB(editB)" class="mb-20px"> 确认</el-button>
|
||||||
确认</el-button
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -548,19 +433,13 @@
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<el-button type="primary" @click="handleSetAuth" class="mb-20px">
|
<el-button type="primary" @click="handleSetAuth" class="mb-20px"> 确认</el-button>
|
||||||
确认</el-button
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</NModal>
|
</NModal>
|
||||||
<n-modal v-model:show="showModal" :z-index="99999">
|
<n-modal v-model:show="showModal" :z-index="99999">
|
||||||
<UserList
|
<UserList :userDataList="setUserList" @clickChild="handleChild" @CloseThis="CloseThiss" />
|
||||||
:userDataList="setUserList"
|
|
||||||
@clickChild="handleChild"
|
|
||||||
@CloseThis="CloseThiss"
|
|
||||||
/>
|
|
||||||
</n-modal>
|
</n-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -592,7 +471,7 @@ const database = databaseld()
|
||||||
const store: any = useUserStore()
|
const store: any = useUserStore()
|
||||||
const message = useMessage()
|
const message = useMessage()
|
||||||
const userCode = computed(() =>
|
const userCode = computed(() =>
|
||||||
['admin', 'database_dandang', 'tech_service'].includes(store.user.roleCode)
|
['admin', 'database_dandang', 'tech_service'].some((item) => store.user.roleCode?.includes(item))
|
||||||
)
|
)
|
||||||
// 'tech_service'
|
// 'tech_service'
|
||||||
const isDbReview = store.user?.isDbReview === 1
|
const isDbReview = store.user?.isDbReview === 1
|
||||||
|
|
@ -878,10 +757,7 @@ const handleChange = (e: string | any[]) => {
|
||||||
}
|
}
|
||||||
// console.log(e,editB.value.cateId,99999)
|
// console.log(e,editB.value.cateId,99999)
|
||||||
}
|
}
|
||||||
const handOnExceed: UploadProps['onExceed'] = (
|
const handOnExceed: UploadProps['onExceed'] = (uploadFile: any, uploadFiles: any) => {
|
||||||
uploadFile: any,
|
|
||||||
uploadFiles: any
|
|
||||||
) => {
|
|
||||||
message.warning('最多只能上传一个文件!')
|
message.warning('最多只能上传一个文件!')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -895,12 +771,7 @@ const flg = ref()
|
||||||
const setUserList = ref()
|
const setUserList = ref()
|
||||||
const dbAuthType = ref()
|
const dbAuthType = ref()
|
||||||
const selSetAuthKey = ref('')
|
const selSetAuthKey = ref('')
|
||||||
async function getUser(row: {
|
async function getUser(row: { id?: any; userList?: any; type?: number; key?: string }) {
|
||||||
id?: any
|
|
||||||
userList?: any
|
|
||||||
type?: number
|
|
||||||
key?: string
|
|
||||||
}) {
|
|
||||||
showModal.value = !showModal.value
|
showModal.value = !showModal.value
|
||||||
flg.value = row
|
flg.value = row
|
||||||
if (showAuthModal.value) {
|
if (showAuthModal.value) {
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,9 @@ import { isNotOneWeekAgo } from '@/utils'
|
||||||
|
|
||||||
const store = useUserStore()
|
const store = useUserStore()
|
||||||
const myStore = useMyStore()
|
const myStore = useMyStore()
|
||||||
const userCode = ['admin', 'theme_dandang', 'tech_service'].includes(store.user.roleCode)
|
const userCode = ['admin', 'theme_dandang', 'tech_service'].some((item) =>
|
||||||
|
store.user.roleCode?.includes(item)
|
||||||
|
)
|
||||||
|
|
||||||
const message = useMessage()
|
const message = useMessage()
|
||||||
const showDropdown1 = ref(false)
|
const showDropdown1 = ref(false)
|
||||||
|
|
|
||||||
|
|
@ -2,65 +2,71 @@
|
||||||
import HomeHead from '@/views/home/components/HomeHead.vue'
|
import HomeHead from '@/views/home/components/HomeHead.vue'
|
||||||
// import HomeHeadSearch from '@/views/home/components/HomeHeadSearch.vue'
|
// import HomeHeadSearch from '@/views/home/components/HomeHeadSearch.vue'
|
||||||
import { NModal, useMessage } from 'naive-ui'
|
import { NModal, useMessage } from 'naive-ui'
|
||||||
import { getCateList, editCateItem,getCateItemList,deleteCateItem ,getLabActList} from '@/api/daikin/base'
|
import {
|
||||||
|
getCateList,
|
||||||
|
editCateItem,
|
||||||
|
getCateItemList,
|
||||||
|
deleteCateItem,
|
||||||
|
getLabActList
|
||||||
|
} from '@/api/daikin/base'
|
||||||
import { useUserStore } from '@/stores/modules/user'
|
import { useUserStore } from '@/stores/modules/user'
|
||||||
import { useDate } from '@/views/home/hooks/useDate'
|
import { useDate } from '@/views/home/hooks/useDate'
|
||||||
import { useMyStore } from '@/stores/modules/mystor'
|
import { useMyStore } from '@/stores/modules/mystor'
|
||||||
|
|
||||||
const myStore = useMyStore();
|
const myStore = useMyStore()
|
||||||
const message = useMessage()
|
const message = useMessage()
|
||||||
const store = useUserStore()
|
const store = useUserStore()
|
||||||
const header = { 'token': store.user.token }
|
const header = { 'token': store.user.token }
|
||||||
const userCode = ['admin', 'theme_dandang', 'tech_service'].includes(store.user.roleCode)
|
const userCode = ['admin', 'theme_dandang', 'tech_service'].some((item) =>
|
||||||
|
store.user.roleCode?.includes(item)
|
||||||
|
)
|
||||||
const { day, week } = useDate()
|
const { day, week } = useDate()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const { push } = useRouter()
|
const { push } = useRouter()
|
||||||
|
|
||||||
const dataA = ref([])
|
const dataA = ref([])
|
||||||
|
|
||||||
|
|
||||||
const shomkA = ref(false)
|
const shomkA = ref(false)
|
||||||
|
|
||||||
const actMidIsSelects=ref()
|
const actMidIsSelects = ref()
|
||||||
const activeName = ref()
|
const activeName = ref()
|
||||||
const tabsList = ref()
|
const tabsList = ref()
|
||||||
const cateIds = ref()
|
const cateIds = ref()
|
||||||
const starId = ref()
|
const starId = ref()
|
||||||
const state = reactive<any>({
|
const state = reactive<any>({
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
cateId:route.params.id!==':id'?route.params.id:starId.value,
|
cateId: route.params.id !== ':id' ? route.params.id : starId.value
|
||||||
})
|
})
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
const { data } = await getLabActList()
|
const { data } = await getLabActList()
|
||||||
actMidIsSelects.value = data.actMidIsSelect
|
actMidIsSelects.value = data.actMidIsSelect
|
||||||
const indexId = myStore.data
|
const indexId = myStore.data
|
||||||
console.log(indexId)
|
console.log(indexId)
|
||||||
const { data: dataBot } = await getCateList({indexId})
|
const { data: dataBot } = await getCateList({ indexId })
|
||||||
|
|
||||||
tabsList.value = dataBot
|
tabsList.value = dataBot
|
||||||
if(dataBot.length>0){
|
if (dataBot.length > 0) {
|
||||||
starId.value = dataBot[0].id
|
starId.value = dataBot[0].id
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(starId.value)
|
console.log(starId.value)
|
||||||
cateIds.value = route.params.id
|
cateIds.value = route.params.id
|
||||||
activeName.value = route.params.id!==':id'?route.params.id:starId.value+''
|
activeName.value = route.params.id !== ':id' ? route.params.id : starId.value + ''
|
||||||
|
|
||||||
})
|
})
|
||||||
async function getItemList() {
|
async function getItemList() {
|
||||||
const {rows} =await getCateItemList(state)
|
const { rows } = await getCateItemList(state)
|
||||||
dataA.value = rows
|
dataA.value = rows
|
||||||
}
|
}
|
||||||
|
|
||||||
const ss = computed(() => [state.pageNum, state.cateId])
|
const ss = computed(() => [state.pageNum, state.cateId])
|
||||||
watch(() => unref(ss),
|
watch(
|
||||||
|
() => unref(ss),
|
||||||
async (v) => {
|
async (v) => {
|
||||||
getItemList()
|
getItemList()
|
||||||
},
|
},
|
||||||
{ immediate: true, deep: true },
|
{ immediate: true, deep: true }
|
||||||
)
|
)
|
||||||
|
|
||||||
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
||||||
state.cateId = tab.props.label
|
state.cateId = tab.props.label
|
||||||
|
|
@ -76,89 +82,92 @@ const editA = ref({
|
||||||
fileList: []
|
fileList: []
|
||||||
})
|
})
|
||||||
|
|
||||||
async function onSubmit(row: { id: number; url: any; title: string; time: string; dowhat: string; files: never[]; fileList: never[] }) {
|
async function onSubmit(row: {
|
||||||
|
id: number
|
||||||
|
url: any
|
||||||
|
title: string
|
||||||
|
time: string
|
||||||
|
dowhat: string
|
||||||
|
files: never[]
|
||||||
|
fileList: never[]
|
||||||
|
}) {
|
||||||
console.log(row)
|
console.log(row)
|
||||||
|
|
||||||
const { id, title, fileList } = row
|
const { id, title, fileList } = row
|
||||||
const cateId = cateIds.value===':id'?activeName.value:cateIds.value
|
const cateId = cateIds.value === ':id' ? activeName.value : cateIds.value
|
||||||
let filePath
|
let filePath
|
||||||
console.log(cateId)
|
console.log(cateId)
|
||||||
if (fileList && fileList.length > 0) {
|
if (fileList && fileList.length > 0) {
|
||||||
filePath = fileList.map(file => {
|
filePath = fileList
|
||||||
if(file.response){
|
.map((file) => {
|
||||||
|
if (file.response) {
|
||||||
return file.response.url
|
return file.response.url
|
||||||
}
|
} else {
|
||||||
else{
|
|
||||||
return file.url
|
return file.url
|
||||||
}
|
}
|
||||||
}).join(',')
|
})
|
||||||
|
.join(',')
|
||||||
}
|
}
|
||||||
console.log({id,title,cateId,filePath})
|
console.log({ id, title, cateId, filePath })
|
||||||
if(cateId&&cateId=='undefined'){
|
if (cateId && cateId == 'undefined') {
|
||||||
message.error("请先添加类别!")
|
message.error('请先添加类别!')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const { code, msg } = await editCateItem({ id, title, cateId, filePath })
|
const { code, msg } = await editCateItem({ id, title, cateId, filePath })
|
||||||
if (code === 200) { message.success("添加成功!") }
|
if (code === 200) {
|
||||||
else { message.error(msg) }
|
message.success('添加成功!')
|
||||||
|
} else {
|
||||||
|
message.error(msg)
|
||||||
|
}
|
||||||
|
|
||||||
window.location.reload();
|
window.location.reload()
|
||||||
shomkA.value = false
|
shomkA.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleEdit = (row: any) => {
|
const handleEdit = (row: any) => {
|
||||||
console.log(row)
|
console.log(row)
|
||||||
row.fileList = row.filePathList.map(item=>Object.assign(item,{
|
row.fileList = row.filePathList.map((item) =>
|
||||||
name:item.originalFileName
|
Object.assign(item, {
|
||||||
}))
|
name: item.originalFileName
|
||||||
|
})
|
||||||
|
)
|
||||||
shomkA.value = true
|
shomkA.value = true
|
||||||
if (!row) return
|
if (!row) return
|
||||||
editA.value = row
|
editA.value = row
|
||||||
|
|
||||||
}
|
}
|
||||||
async function handleDelete(obj) {
|
async function handleDelete(obj) {
|
||||||
const {id} = obj
|
const { id } = obj
|
||||||
const { code,msg} =await deleteCateItem({id})
|
const { code, msg } = await deleteCateItem({ id })
|
||||||
if (code === 200) { message.success("删除成功!") }
|
if (code === 200) {
|
||||||
else { message.error(msg) }
|
message.success('删除成功!')
|
||||||
window.location.reload();
|
} else {
|
||||||
|
message.error(msg)
|
||||||
|
}
|
||||||
|
window.location.reload()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
async function downloadFile(data) {
|
async function downloadFile(data) {
|
||||||
// console.log(data)
|
// console.log(data)
|
||||||
if(actMidIsSelects.value===2){
|
if (actMidIsSelects.value === 2) {
|
||||||
message.info("没有访问权限")
|
message.info('没有访问权限')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const url = data.it.url
|
const url = data.it.url
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await fetch(url);
|
const response = await fetch(url)
|
||||||
const blob = await response.blob();
|
const blob = await response.blob()
|
||||||
|
|
||||||
const downloadUrl = URL.createObjectURL(blob);
|
const downloadUrl = URL.createObjectURL(blob)
|
||||||
const link = document.createElement('a');
|
const link = document.createElement('a')
|
||||||
link.href = downloadUrl;
|
link.href = downloadUrl
|
||||||
link.download = data.it.originalFileName; // 替换为你要保存的文件名
|
link.download = data.it.originalFileName // 替换为你要保存的文件名
|
||||||
link.click();
|
link.click()
|
||||||
URL.revokeObjectURL(downloadUrl);
|
URL.revokeObjectURL(downloadUrl)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
message.error('下载文件出错:', error);
|
message.error('下载文件出错:', error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<HomeHead class="top">
|
<HomeHead class="top">
|
||||||
|
|
@ -176,7 +185,12 @@ async function downloadFile(data) {
|
||||||
</div>
|
</div>
|
||||||
<div class="q-wrapper flex-1 mt30px text-#142142 flex flex-col bg-#fff p30px rounded-20px">
|
<div class="q-wrapper flex-1 mt30px text-#142142 flex flex-col bg-#fff p30px rounded-20px">
|
||||||
<el-tabs v-model="activeName" @tab-click="handleClick">
|
<el-tabs v-model="activeName" @tab-click="handleClick">
|
||||||
<el-tab-pane v-for="(item,ind) in tabsList" :label="item.id" :name="item.id+''" :index="item.id">
|
<el-tab-pane
|
||||||
|
v-for="(item, ind) in tabsList"
|
||||||
|
:label="item.id"
|
||||||
|
:name="item.id + ''"
|
||||||
|
:index="item.id"
|
||||||
|
>
|
||||||
<template #label>
|
<template #label>
|
||||||
<span class="custom-tabs-label">
|
<span class="custom-tabs-label">
|
||||||
<span class="text-20px">{{ item.cateName }}</span>
|
<span class="text-20px">{{ item.cateName }}</span>
|
||||||
|
|
@ -186,54 +200,59 @@ async function downloadFile(data) {
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div v-if="dataA" v-for="iet in dataA" class="py25px px10px text-18px ">
|
<div v-if="dataA" v-for="iet in dataA" class="py25px px10px text-18px">
|
||||||
<span class="content">{{iet.title}}</span>
|
<span class="content">{{ iet.title }}</span>
|
||||||
<el-dropdown max-height="100px" @command="downloadFile" class="top--5px w50px block float-left">
|
<el-dropdown
|
||||||
|
max-height="100px"
|
||||||
|
@command="downloadFile"
|
||||||
|
class="top--5px w50px block float-left"
|
||||||
|
>
|
||||||
<el-icon size="25" color="#0054E4">
|
<el-icon size="25" color="#0054E4">
|
||||||
<CaretBottom />
|
<CaretBottom />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
|
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
<el-dropdown-item v-if="iet.filePathList" v-for="it in iet.filePathList"
|
<el-dropdown-item
|
||||||
:command="{ it }">{{ it.originalFileName }}</el-dropdown-item>
|
v-if="iet.filePathList"
|
||||||
|
v-for="it in iet.filePathList"
|
||||||
|
:command="{ it }"
|
||||||
|
>{{ it.originalFileName }}</el-dropdown-item
|
||||||
|
>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</template>
|
</template>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
<!--
|
<!--
|
||||||
<div v-if="userCode" class="w120px block float-right">
|
<div v-if="userCode" class="w120px block float-right">
|
||||||
<el-button size="small" @click="handleEdit(iet)">编辑</el-button>
|
<el-button size="small" @click="handleEdit(iet)">编辑</el-button>
|
||||||
<el-button size="small" type="danger" @click="handleDelete(iet)">删除</el-button>
|
<el-button size="small" type="danger" @click="handleDelete(iet)">删除</el-button>
|
||||||
</div> -->
|
</div> -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- <el-button v-if="userCode" type="primary" class="" @click="shomkA = !shomkA">新增内容</el-button> -->
|
<!-- <el-button v-if="userCode" type="primary" class="" @click="shomkA = !shomkA">新增内容</el-button> -->
|
||||||
</div>
|
</div>
|
||||||
<n-modal v-model:show="shomkA">
|
<n-modal v-model:show="shomkA">
|
||||||
<div class="bg-#FFF p30px">
|
<div class="bg-#FFF p30px">
|
||||||
<el-form :model="editA" label-width="120px" :inline="true">
|
<el-form :model="editA" label-width="120px" :inline="true">
|
||||||
|
<br />
|
||||||
|
|
||||||
<br>
|
|
||||||
<el-form-item label="标题">
|
<el-form-item label="标题">
|
||||||
<el-input v-model="editA.title" />
|
<el-input v-model="editA.title" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<br>
|
<br />
|
||||||
<el-form-item label="文件">
|
<el-form-item label="文件">
|
||||||
<el-upload v-model:file-list="editA.fileList" class="upload-demo" :headers="header"
|
<el-upload
|
||||||
action="/test-api/common/upload">
|
v-model:file-list="editA.fileList"
|
||||||
|
class="upload-demo"
|
||||||
|
:headers="header"
|
||||||
|
action="/test-api/common/upload"
|
||||||
|
>
|
||||||
<el-button type="primary">选择文件</el-button>
|
<el-button type="primary">选择文件</el-button>
|
||||||
|
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<hr class="mb15px border-#f1f1f1">
|
<hr class="mb15px border-#f1f1f1" />
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="onSubmit(editA)">确认</el-button>
|
<el-button type="primary" @click="onSubmit(editA)">确认</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -241,12 +260,12 @@ async function downloadFile(data) {
|
||||||
</n-modal>
|
</n-modal>
|
||||||
</template>
|
</template>
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
.el-tabs__content{
|
.el-tabs__content {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
.content{
|
.content {
|
||||||
display: block;
|
display: block;
|
||||||
max-width:1100px;
|
max-width: 1100px;
|
||||||
float: left;
|
float: left;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import HomeHead from '@/views/home/components/HomeHead.vue'
|
||||||
import HomeHeadSearch from '@/views/home/components/HomeHeadSearch.vue'
|
import HomeHeadSearch from '@/views/home/components/HomeHeadSearch.vue'
|
||||||
import Editor from './TinyECE.vue'
|
import Editor from './TinyECE.vue'
|
||||||
import { useDate } from '@/views/home/hooks/useDate'
|
import { useDate } from '@/views/home/hooks/useDate'
|
||||||
|
import { noticeld } from '@/stores/modules/noticeId'
|
||||||
import type { FormInst } from 'naive-ui'
|
import type { FormInst } from 'naive-ui'
|
||||||
import { useMessage } from 'naive-ui'
|
import { useMessage } from 'naive-ui'
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
|
|
@ -25,6 +26,19 @@ import { useUserStore } from '@/stores/modules/user'
|
||||||
const store = useUserStore()
|
const store = useUserStore()
|
||||||
const { day, week } = useDate()
|
const { day, week } = useDate()
|
||||||
const { push } = useRouter()
|
const { push } = useRouter()
|
||||||
|
const not = noticeld()
|
||||||
|
|
||||||
|
const toDetail2 = (id: any) => {
|
||||||
|
not.article.cate = id
|
||||||
|
console.log(not.article.cate)
|
||||||
|
// push(`${route.path.replace('/external','')}/info/${n.id}`)
|
||||||
|
push('/external/Board')
|
||||||
|
}
|
||||||
|
|
||||||
|
const userCode = ref(false)
|
||||||
|
userCode.value = ['admin', 'waibuyemianguanliyuan', 'tech_service'].some((item) =>
|
||||||
|
store.user.roleCode?.includes(item)
|
||||||
|
)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|
@ -38,9 +52,34 @@ const { push } = useRouter()
|
||||||
<div class="text-36px">外部情报</div>
|
<div class="text-36px">外部情报</div>
|
||||||
<div class="text-18px ml40px mr25px">{{ day }}</div>
|
<div class="text-18px ml40px mr25px">{{ day }}</div>
|
||||||
<div class="text-18px flex-1">{{ week }}</div>
|
<div class="text-18px flex-1">{{ week }}</div>
|
||||||
|
<el-dropdown>
|
||||||
|
<div class="text-#fff" style="margin-right: 8px" v-if="userCode">
|
||||||
|
<div class="add text-18px px13px py11px cursor-pointer">外部审批流程</div>
|
||||||
|
</div>
|
||||||
|
<template #dropdown>
|
||||||
|
<el-dropdown-menu>
|
||||||
|
<el-dropdown-item @click="push({ path: '/external/Process' })">News</el-dropdown-item>
|
||||||
|
<el-dropdown-item @click="push({ path: '/external/Process', query: { cate: '8' } })"
|
||||||
|
>重要通知</el-dropdown-item
|
||||||
|
>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</template>
|
||||||
|
</el-dropdown>
|
||||||
|
<el-dropdown>
|
||||||
|
<div class="text-#fff" style="margin-right: 28px" v-if="userCode">
|
||||||
|
<div class="add text-18px px13px py11px cursor-pointer">外部新增 +</div>
|
||||||
|
</div>
|
||||||
|
<template #dropdown>
|
||||||
|
<el-dropdown-menu>
|
||||||
|
<el-dropdown-item @click="toDetail2(7)">News</el-dropdown-item>
|
||||||
|
<el-dropdown-item @click="toDetail2(8)">重要通知</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</template>
|
||||||
|
</el-dropdown>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
style="margin-right: 8px"
|
style="margin-right: 8px"
|
||||||
v-if="store.user.isPublish === 1 || store.user.roleCode === 'zhuxi'"
|
v-if="store.user.isPublish === 1 || store.user.roleCode?.includes('zhuxi')"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="add text-18px px13px py11px cursor-pointer"
|
class="add text-18px px13px py11px cursor-pointer"
|
||||||
|
|
@ -51,7 +90,7 @@ const { push } = useRouter()
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
style="margin-right: 8px"
|
style="margin-right: 8px"
|
||||||
v-if="store.user.isPublish === 1 || store.user.roleCode === 'zhuxi'"
|
v-if="store.user.isPublish === 1 || store.user.roleCode?.includes('zhuxi')"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="add text-18px px13px py11px cursor-pointer"
|
class="add text-18px px13px py11px cursor-pointer"
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,7 @@ import { useUserStore } from '@/stores/modules/user'
|
||||||
import HomeHead from '@/views/home/components/HomeHead.vue'
|
import HomeHead from '@/views/home/components/HomeHead.vue'
|
||||||
import HomeHeadSearch from '@/views/home/components/HomeHeadSearch.vue'
|
import HomeHeadSearch from '@/views/home/components/HomeHeadSearch.vue'
|
||||||
import { useDate } from '@/views/home/hooks/useDate'
|
import { useDate } from '@/views/home/hooks/useDate'
|
||||||
import {
|
import { getNoticeList, deleteWithdraw, getManagerList } from '@/api/daikin/base'
|
||||||
getNoticeList,
|
|
||||||
deleteWithdraw,
|
|
||||||
getManagerList
|
|
||||||
} from '@/api/daikin/base'
|
|
||||||
import { noticeld } from '@/stores/modules/noticeId'
|
import { noticeld } from '@/stores/modules/noticeId'
|
||||||
import { getImg } from '../images'
|
import { getImg } from '../images'
|
||||||
import { NTag } from 'naive-ui'
|
import { NTag } from 'naive-ui'
|
||||||
|
|
@ -83,7 +79,7 @@ const clickTo = (data: any) => {
|
||||||
store.article.noticeld = noticeId
|
store.article.noticeld = noticeId
|
||||||
if (
|
if (
|
||||||
[1, 2].includes(reviewStatus) &&
|
[1, 2].includes(reviewStatus) &&
|
||||||
['review_person', 'zhuxi', 'tech_service'].includes(store2.user.roleCode)
|
['review_person', 'zhuxi', 'tech_service'].some((item) => store2.user.roleCode?.includes(item))
|
||||||
) {
|
) {
|
||||||
push(`/Home/Process/ProcessInfo/${id}`)
|
push(`/Home/Process/ProcessInfo/${id}`)
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -208,9 +204,7 @@ let tabs = store2.user.isReview > 0 ? tabsList2.value : tabsList.value
|
||||||
<div class="text-18px ml40px mr25px">{{ day }}</div>
|
<div class="text-18px ml40px mr25px">{{ day }}</div>
|
||||||
<div class="text-18px">{{ week }}</div>
|
<div class="text-18px">{{ week }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="q-wrapper flex-1 mt30px text-#142142 flex flex-col bg-#fff p30px">
|
||||||
class="q-wrapper flex-1 mt30px text-#142142 flex flex-col bg-#fff p30px"
|
|
||||||
>
|
|
||||||
<div>
|
<div>
|
||||||
<el-tabs type="card" v-model="activeNames" @tab-click="handleClicks">
|
<el-tabs type="card" v-model="activeNames" @tab-click="handleClicks">
|
||||||
<el-tab-pane name="2">
|
<el-tab-pane name="2">
|
||||||
|
|
@ -221,8 +215,8 @@ let tabs = store2.user.isReview > 0 ? tabsList2.value : tabsList.value
|
||||||
<el-tab-pane
|
<el-tab-pane
|
||||||
name="3"
|
name="3"
|
||||||
v-if="
|
v-if="
|
||||||
['review_person', 'zhuxi', 'tech_service'].includes(
|
['review_person', 'zhuxi', 'tech_service'].some((item) =>
|
||||||
store2.user.roleCode
|
store2.user.roleCode?.includes(item)
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
|
|
@ -348,28 +342,20 @@ let tabs = store2.user.isReview > 0 ? tabsList2.value : tabsList.value
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
<el-dropdown-item v-if="i.firstReviewName">
|
<el-dropdown-item v-if="i.firstReviewName">
|
||||||
<div class="ml20px text-#808696 !text-12px flex">
|
<div class="ml20px text-#808696 !text-12px flex">
|
||||||
<span class="min-w120px"
|
<span class="min-w120px">初审人:{{ i.firstReviewName }}</span>
|
||||||
>初审人:{{ i.firstReviewName }}</span
|
|
||||||
>
|
|
||||||
<span class="ml20px">初审时间:{{ i.firstReviewTime }}</span>
|
<span class="ml20px">初审时间:{{ i.firstReviewTime }}</span>
|
||||||
</div>
|
</div>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="i.ultimateReviewName">
|
<el-dropdown-item v-if="i.ultimateReviewName">
|
||||||
<div class="ml20px text-#808696 !text-12px flex">
|
<div class="ml20px text-#808696 !text-12px flex">
|
||||||
<span class="min-w120px"
|
<span class="min-w120px">终审人:{{ i.ultimateReviewName }}</span>
|
||||||
>终审人:{{ i.ultimateReviewName }}</span
|
<span class="ml20px">终审时间:{{ i.ultimateReviewTime }}</span>
|
||||||
>
|
|
||||||
<span class="ml20px"
|
|
||||||
>终审时间:{{ i.ultimateReviewTime }}</span
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</template>
|
</template>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
<span class="shrink-0 ml38px text-#808696 w220px">{{
|
<span class="shrink-0 ml38px text-#808696 w220px">{{ i.createTime }}</span>
|
||||||
i.createTime
|
|
||||||
}}</span>
|
|
||||||
<span
|
<span
|
||||||
v-if="store2.user.isReview > 0 && i.publishName"
|
v-if="store2.user.isReview > 0 && i.publishName"
|
||||||
class="ml20px text-#808696 text-16px flex-1"
|
class="ml20px text-#808696 text-16px flex-1"
|
||||||
|
|
@ -377,7 +363,7 @@ let tabs = store2.user.isReview > 0 ? tabsList2.value : tabsList.value
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
v-if="
|
v-if="
|
||||||
['publish', 'tech_service'].includes(store2.user.roleCode) &&
|
['publish', 'tech_service'].some((item) => store2.user.roleCode?.includes(item)) &&
|
||||||
Status.reviewStatus === 1
|
Status.reviewStatus === 1
|
||||||
"
|
"
|
||||||
class="absolute right-10px top-18px"
|
class="absolute right-10px top-18px"
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,12 @@ import Amtion from '@/components/amtion.vue'
|
||||||
import {noticeld} from '@/stores/modules/noticeId'
|
import {noticeld} from '@/stores/modules/noticeId'
|
||||||
const store = useUserStore()
|
const store = useUserStore()
|
||||||
const stores = noticeld()
|
const stores = noticeld()
|
||||||
const userCode = ['admin','shikuang_dandang','tech_service'].includes(store.user.roleCode)
|
const userCode = ['admin','shikuang_dandang','tech_service'].some((item) =>
|
||||||
const userCodes = ['admin','huilv_dandang','tech_service'].includes(store.user.roleCode)
|
store.user.roleCode?.includes(item)
|
||||||
|
)
|
||||||
|
const userCodes = ['admin','huilv_dandang','tech_service'].some((item) =>
|
||||||
|
store.user.roleCode?.includes(item)
|
||||||
|
)
|
||||||
const { day, week } = useDate()
|
const { day, week } = useDate()
|
||||||
const { push } = useRouter()
|
const { push } = useRouter()
|
||||||
const currentDate = new Date();
|
const currentDate = new Date();
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,9 @@ import { topList, actList, highList, badartList, topStat } from '@/api/daikin/ba
|
||||||
import { isNotOneWeekAgo } from '@/utils'
|
import { isNotOneWeekAgo } from '@/utils'
|
||||||
// import { it } from "element-plus/es/locale/index.js";
|
// import { it } from "element-plus/es/locale/index.js";
|
||||||
const store = useUserStore()
|
const store = useUserStore()
|
||||||
const userCode = ['admin', 'quality_dangdan', 'tech_service'].includes(store.user.roleCode)
|
const userCode = ['admin', 'quality_dangdan', 'tech_service'].some((item) =>
|
||||||
|
store.user.roleCode?.includes(item)
|
||||||
|
)
|
||||||
const message = useMessage()
|
const message = useMessage()
|
||||||
// console.log(userCode);
|
// console.log(userCode);
|
||||||
const dataA = ref([])
|
const dataA = ref([])
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue