Merge branch 'dev' of http://git.sinoecare.com/sinoecare/digital_village_v2/dvcp_v2_webapp into dev
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
import SliderNav from "./components/sliderNav";
|
||||
import MainContent from "./components/mainContent";
|
||||
import HeaderNav from "./components/headerNav";
|
||||
import {mapMutations, mapState} from "vuex";
|
||||
import {mapActions, mapMutations, mapState} from "vuex";
|
||||
|
||||
export default {
|
||||
name: 'app',
|
||||
@@ -42,7 +42,8 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
...mapMutations(['setToken']),
|
||||
...mapMutations(['setToken', 'setFinanceUser']),
|
||||
...mapActions(['getUserInfo']),
|
||||
getToken(params) {
|
||||
if (params.access_token) {
|
||||
this.setToken([params.token_type, params.access_token].join(' '))
|
||||
@@ -52,16 +53,6 @@ export default {
|
||||
} else this.$message.error(params.msg || "登录失败!")
|
||||
|
||||
},
|
||||
getUserInfo() {
|
||||
this.$axios.post("/admin/user/detail-phone").then(res => {
|
||||
if (res?.data) {
|
||||
this.$store.commit("setUserInfo", res.data)
|
||||
if (/^\/project\/xiushan/.test(location.pathname)) {
|
||||
this.$store.commit("setFinanceUser")
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
handleLogin() {
|
||||
this.$axios.delete("/auth/token/logout").finally(() => {
|
||||
this.dialog = true
|
||||
@@ -69,8 +60,12 @@ export default {
|
||||
},
|
||||
},
|
||||
created() {
|
||||
if (this.user.token) this.getUserInfo()
|
||||
wx = jWeixin
|
||||
if (this.user.token) this.getUserInfo().then(() => {
|
||||
if (/^\/project\/xiushan/.test(location.pathname)) {
|
||||
this.setFinanceUser()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -2,56 +2,28 @@ import Vue from 'vue'
|
||||
import Vuex from 'vuex'
|
||||
import preState from 'vuex-persistedstate'
|
||||
import request from '../router/axios'
|
||||
import * as modules from "dvcp-ui/lib/js/modules"
|
||||
|
||||
Vue.use(Vuex)
|
||||
|
||||
const user = {
|
||||
state: {
|
||||
info: {},
|
||||
token: '',
|
||||
financeUser: {}
|
||||
},
|
||||
mutations: {
|
||||
setFinanceUser(state) {
|
||||
request.post("appfinancialorganizationuser/checkUser").then(res => {
|
||||
state.financeUser = res.data
|
||||
})
|
||||
},
|
||||
setUserInfo(state, userInfo) {
|
||||
state.info = userInfo
|
||||
},
|
||||
setToken(state, token) {
|
||||
state.token = token
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default new Vuex.Store({
|
||||
state: {
|
||||
dicts: [],
|
||||
apps: []
|
||||
},
|
||||
mutations: {
|
||||
setDicts(state, payload) {
|
||||
if (payload) {
|
||||
payload.map(p => {
|
||||
if (state.dicts.some(d => d.key == p.key)) {
|
||||
const index = state.dicts.findIndex(d => d.key == p.key)
|
||||
state.dicts.splice(index, 1)
|
||||
state.dicts.push(p)
|
||||
} else {
|
||||
state.dicts.push(p)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
addApp(state, app) {
|
||||
state.apps.push(app)
|
||||
},
|
||||
cleanApps(state) {
|
||||
state.apps = []
|
||||
}
|
||||
},
|
||||
setFinanceUser(state) {
|
||||
request.post("appfinancialorganizationuser/checkUser").then(res => {
|
||||
state.user.financeUser = res.data
|
||||
})
|
||||
},
|
||||
},
|
||||
modules: {user},
|
||||
modules,
|
||||
plugins: [preState()]
|
||||
})
|
||||
|
||||
@@ -36,13 +36,13 @@
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="发送内容" prop="departmentName" style="width: 100%;" :rules="[{ required: true, message: '请选择部门', trigger: 'change' }]">
|
||||
<el-input size="small" type="textarea" :rows="6" placeholder="请输入文本内容..." v-model="form.departmentName"></el-input>
|
||||
<el-form-item label="发送内容" prop="content" style="width: 100%;" :rules="[{ required: true, message: '请选择部门', trigger: 'change' }]">
|
||||
<el-input size="small" type="textarea" :rows="6" placeholder="请输入文本内容..." v-model="form.content"></el-input>
|
||||
<div class="add">
|
||||
<div class="fileList" v-if="fileList.length">
|
||||
<div class="add-item" v-for="(item, index) in fileList" :key="index">
|
||||
<div class="left">
|
||||
<img :src="mapIcon(item.media.type)" />
|
||||
<img :src="mapIcon(item.msgType)" />
|
||||
<span>{{ item.name }}</span>
|
||||
</div>
|
||||
<i @click="removeFile(index)">删除</i>
|
||||
@@ -67,7 +67,7 @@
|
||||
:limit="9"
|
||||
action="/app/wxcp/upload/uploadFile"
|
||||
accept=".jpg,.png,.jpeg"
|
||||
:http-request="v => submitUpload(v, 'image')">
|
||||
:http-request="v => submitUpload(v, '1')">
|
||||
<div class="content-item" trigger>
|
||||
<img src="https://cdn.cunwuyun.cn/dvcp/announce/big-img.png" />
|
||||
<p>图片</p>
|
||||
@@ -82,17 +82,28 @@
|
||||
:limit="9"
|
||||
action="/app/wxcp/upload/uploadFile"
|
||||
accept=".mp4"
|
||||
:http-request="v => submitUpload(v, 'video')">
|
||||
:http-request="v => submitUpload(v, '2')">
|
||||
<div class="content-item" trigger>
|
||||
<img src="https://cdn.cunwuyun.cn/dvcp/announce/big-video.png" />
|
||||
<p>视频</p>
|
||||
</div>
|
||||
</el-upload>
|
||||
<div class="content-item">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
multiple
|
||||
:file-list="fileList"
|
||||
:show-file-list="false"
|
||||
:before-upload="v => handleChange(v, 10, '.zip、.rar、.doc、.docx、.xls、.xlsx、.ppt、.pptx、.pdf、.txt')"
|
||||
:limit="9"
|
||||
action="/app/wxcp/upload/uploadFile"
|
||||
accept=".zip、.rar、.doc、.docx、.xls、.xlsx、.ppt、.pptx、.pdf、.txt"
|
||||
:http-request="v => submitUpload(v, '3')">
|
||||
<div class="content-item" trigger>
|
||||
<img src="https://cdn.cunwuyun.cn/dvcp/announce/folder.png" />
|
||||
<p>文件</p>
|
||||
</div>
|
||||
<div class="content-item">
|
||||
<p>文件</p>
|
||||
</div>
|
||||
</el-upload>
|
||||
<div class="content-item" @click="isShowAddLink = true">
|
||||
<img src="https://cdn.cunwuyun.cn/dvcp/announce/site.png" />
|
||||
<p>网页</p>
|
||||
</div>
|
||||
@@ -133,6 +144,41 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<ai-dialog
|
||||
:visible.sync="isShowAddLink"
|
||||
width="920px"
|
||||
title="链接消息"
|
||||
@close="onClose"
|
||||
@onConfirm="onLinkConfirm">
|
||||
<el-form ref="linkForm" :model="linkForm" label-width="110px" label-position="right">
|
||||
<div class="ai-form">
|
||||
<el-form-item label="标题" style="width: 100%;" prop="linkTitle" :rules="[{ required: true, message: '请输入标题', trigger: 'blur' }]">
|
||||
<el-input
|
||||
size="small"
|
||||
placeholder="请输入标题"
|
||||
v-model="linkForm.linkTitle">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="链接" style="width: 100%;" prop="linkUrl" :rules="[{ required: true, message: '请输入链接', trigger: 'blur' }]">
|
||||
<el-input
|
||||
size="small"
|
||||
placeholder="请输入链接"
|
||||
v-model="linkForm.linkUrl">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="描述" style="width: 100%;" prop="linkDesc" :rules="[{ required: true, message: '请输入描述', trigger: 'blur' }]">
|
||||
<el-input
|
||||
size="small"
|
||||
placeholder="请输入描述"
|
||||
v-model="linkForm.linkDesc">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="封面图" prop="linkPicUrl" style="width: 100%;" :rules="[{ required: true, message: '请上传封面图', trigger: 'change' }]">
|
||||
<ai-uploader :instance="instance" v-model="form.linkPicUrl" :limit="1"></ai-uploader>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
</ai-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<template #footer>
|
||||
@@ -158,9 +204,17 @@
|
||||
info: {},
|
||||
department: [],
|
||||
fileList: [],
|
||||
isShowAddLink: false,
|
||||
linkForm: {
|
||||
linkPicUrl: [],
|
||||
linkDesc: '',
|
||||
linkTitle: '',
|
||||
linkUrl: ''
|
||||
},
|
||||
form: {
|
||||
content: '',
|
||||
choiceTime: '',
|
||||
contents: {},
|
||||
contents: [],
|
||||
enableExamine: '0',
|
||||
examines: [],
|
||||
wxGroups: [],
|
||||
@@ -206,17 +260,38 @@
|
||||
})
|
||||
},
|
||||
|
||||
onLinkConfirm () {
|
||||
this.$refs.linkForm.validate((valid) => {
|
||||
if (valid) {
|
||||
this.fileList.push({
|
||||
...this.linkForm,
|
||||
linkPicUrl: this.linkPicUrl[0].url,
|
||||
msgType: '4'
|
||||
})
|
||||
|
||||
this.isShowAddLink = false
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
onClose () {
|
||||
this.linkForm.linkPicUrl = []
|
||||
this.linkForm.linkDesc = ''
|
||||
this.linkForm.linkTitle = ''
|
||||
this.linkForm.linkUrl = ''
|
||||
},
|
||||
|
||||
removeFile (index) {
|
||||
this.fileList.splice(index, 1)
|
||||
},
|
||||
|
||||
mapIcon (type) {
|
||||
return {
|
||||
image: 'https://cdn.cunwuyun.cn/dvcp/announce/img.png',
|
||||
video: 'https://cdn.cunwuyun.cn/dvcp/announce/video.png',
|
||||
folder: 'https://cdn.cunwuyun.cn/dvcp/announce/folder.png',
|
||||
site: 'https://cdn.cunwuyun.cn/dvcp/announce/site.png',
|
||||
miniapp: 'https://cdn.cunwuyun.cn/dvcp/announce/miniapp.png'
|
||||
1: 'https://cdn.cunwuyun.cn/dvcp/announce/img.png',
|
||||
2: 'https://cdn.cunwuyun.cn/dvcp/announce/video.png',
|
||||
3: 'https://cdn.cunwuyun.cn/dvcp/announce/folder.png',
|
||||
4: 'https://cdn.cunwuyun.cn/dvcp/announce/site.png',
|
||||
5: 'https://cdn.cunwuyun.cn/dvcp/announce/miniapp.png'
|
||||
}[type]
|
||||
},
|
||||
|
||||
@@ -247,16 +322,22 @@
|
||||
},
|
||||
|
||||
submitUpload (file, type) {
|
||||
const fileType = {
|
||||
'1': 'image',
|
||||
'2': 'video',
|
||||
'3': 'file'
|
||||
}[type]
|
||||
let formData = new FormData()
|
||||
formData.append('file', file.file)
|
||||
formData.append('type', type)
|
||||
formData.append('type', fileType)
|
||||
this.instance.post(`/app/wxcp/upload/uploadFile`, formData, {
|
||||
withCredentials: false
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.fileList.push({
|
||||
...res.data.file,
|
||||
media: res.data.media
|
||||
media: res.data.media,
|
||||
msgType: type
|
||||
})
|
||||
|
||||
this.$message.success('上传成功')
|
||||
@@ -282,10 +363,6 @@
|
||||
})
|
||||
},
|
||||
|
||||
onClose () {
|
||||
this.form.explain = ''
|
||||
},
|
||||
|
||||
confirm () {
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
|
||||
@@ -131,7 +131,7 @@ export default {
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.loading = false
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
})
|
||||
} else {
|
||||
this.loading = false
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<el-calendar v-model="calendarDate">
|
||||
<template
|
||||
<template
|
||||
slot="dateCell"
|
||||
slot-scope="{date, data}" >
|
||||
<div class="flex-date">
|
||||
@@ -168,7 +168,7 @@
|
||||
if(this.chooseMonth != month) { // 日历点击不同月
|
||||
this.searchMonth = ''
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
this.chooseDay = date
|
||||
@@ -181,11 +181,11 @@
|
||||
|
||||
this.chooseMonth = month
|
||||
this.chooseYear = year
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
var year = this.calendarDate.getFullYear();
|
||||
var month = this.calendarDate.getMonth() + 1;
|
||||
var date = this.calendarDate.getDate()
|
||||
@@ -225,7 +225,7 @@
|
||||
if (res.code == 0) {
|
||||
this.dateList = res.data
|
||||
this.getTaskList(this.chooseDay)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
getTaskList(day) {
|
||||
@@ -256,7 +256,7 @@
|
||||
this.setLineChart(xData, createData, 'createChart', ['#2891FF'])
|
||||
this.setLineChart(xData, executeData, 'executeChart', ['#FFB865'])
|
||||
this.setLineChart(xData, receiveData, 'receiveChart', ['#26D52B'])
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
setLineChart(xData, yData, id, colorList) {
|
||||
@@ -307,9 +307,9 @@
|
||||
if (res.code == 0) {
|
||||
// this.dateList = res.data
|
||||
// this.getTaskList(this.chooseDay)
|
||||
|
||||
|
||||
this.setBarChart()
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// var items = [{type: 'departmentName', id: '10', corpid: 'ww596787bb70f08288'}]
|
||||
@@ -319,7 +319,7 @@
|
||||
// }
|
||||
// console.log(data)
|
||||
// })
|
||||
|
||||
|
||||
},
|
||||
setBarChart() {
|
||||
this.departBarChart = echarts.init(document.querySelector(`#departBarChart`))
|
||||
@@ -381,7 +381,7 @@
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
|
||||
// {
|
||||
// tooltip: {
|
||||
// trigger: 'axis',
|
||||
@@ -595,16 +595,16 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
#departBarChart{
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
::v-deep .el-calendar-table:not(.is-range) td.next,
|
||||
|
||||
::v-deep .el-calendar-table:not(.is-range) td.next,
|
||||
::v-deep .el-calendar-table:not(.is-range) td.prev {
|
||||
color: #ccc;
|
||||
}
|
||||
@@ -641,7 +641,7 @@
|
||||
border-right: 1px solid #eee;
|
||||
}
|
||||
::v-deep .el-timeline-item__timestamp.is-top{
|
||||
margin-bottom: 0;
|
||||
margin-bottom: 0;
|
||||
padding-top: 0;
|
||||
}
|
||||
::v-deep .el-timeline-item__node{
|
||||
|
||||
@@ -574,7 +574,7 @@ export default {
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.loading = false
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
})
|
||||
} else {
|
||||
this.loading = false
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
</div>
|
||||
<p>可以将生成的二维码或链接分享给居民</p>
|
||||
<el-input size="small" :value="info.linkUrl">
|
||||
<el-button slot="append" type="primary" @click="copy(info.linkUrl)">复制链接</el-button>
|
||||
<el-button slot="append" type="primary" @click="copy(info.linkUrl)">复制链接</el-button>
|
||||
</el-input>
|
||||
</div>
|
||||
<div class="step-right">
|
||||
@@ -346,7 +346,7 @@
|
||||
this.list = res.data.records
|
||||
this.total = res.data.total
|
||||
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
this.loading = false
|
||||
} else {
|
||||
this.loading = false
|
||||
@@ -359,7 +359,7 @@
|
||||
this.instance.post(`/app/appquestionnairetemplate/release`, null, {
|
||||
params: {
|
||||
...this.editForm,
|
||||
id: this.id,
|
||||
id: this.id,
|
||||
periodValidityEndTime: this.editForm.periodValidityType === '1' ? this.editForm.periodValidityEndTime : ''
|
||||
}
|
||||
}).then(res => {
|
||||
@@ -538,7 +538,7 @@
|
||||
li.active + li {
|
||||
border-left: 1px solid #D0D4DC;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.publish {
|
||||
.tips {
|
||||
@@ -737,7 +737,7 @@
|
||||
min-height: 450px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
|
||||
.ai-dialog__success {
|
||||
::v-deep .ai-dialog__content {
|
||||
max-height: initial!important;
|
||||
|
||||
@@ -232,7 +232,7 @@
|
||||
mounted () {
|
||||
this.getInfo()
|
||||
this.getFormInfo()
|
||||
|
||||
|
||||
this.dict.load(['wxUserType']).then(() => {
|
||||
this.getList()
|
||||
})
|
||||
@@ -247,7 +247,7 @@
|
||||
if (res.code == 0) {
|
||||
this.tableData = res.data.records
|
||||
this.total = res.data.total
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -322,7 +322,7 @@
|
||||
this.targetList = res.data.fields.map(item => {
|
||||
return JSON.parse(item.fieldInfo)
|
||||
})
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -608,7 +608,7 @@
|
||||
.statistics-wrapper__body--item {
|
||||
margin-bottom: 20px;
|
||||
background: #FFFFFF;
|
||||
border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #DDDDDD;
|
||||
}
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
if (res.code == 0) {
|
||||
this.tableData = res.data.records
|
||||
this.total = res.data.total
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -246,7 +246,7 @@ export default {
|
||||
if (res?.data) {
|
||||
this.info.attendees = res.data.records;
|
||||
this.total = res.data.total;
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
@@ -135,7 +135,7 @@ export default {
|
||||
if (res && res.data) {
|
||||
this.tableData = res.data.records;
|
||||
this.total = res.data.total;
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
@@ -108,7 +108,7 @@ export default {
|
||||
if (res?.data) {
|
||||
this.tableData = res.data.records
|
||||
this.page.total = res.data.total
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
if(res && res.data){
|
||||
Object.keys(this.form).map(e=>this.form[e] = res.data[e]);
|
||||
this.form.type = res.data.releaseTime ? 1 : 0;
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
}).then(res => {
|
||||
if (res && res.data) {
|
||||
this.detailObj = res.data;
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -156,7 +156,7 @@
|
||||
}).then(res => {
|
||||
if (res && res.data) {
|
||||
this.detailObj = res.data;
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -197,7 +197,7 @@
|
||||
if(res && res.data){
|
||||
this.readObj = res.data;
|
||||
this.visible = true;
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -213,7 +213,7 @@
|
||||
if(res && res.data){
|
||||
this.tableData = res.data.records;
|
||||
this.total = res.data.total;
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
if (res && res.data) {
|
||||
this.tableData = res.data.records;
|
||||
this.total = res.data.total;
|
||||
this.$initWxOpenData()
|
||||
this.$store.dispatch('initOpenData')
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
@@ -10,7 +10,7 @@ module.exports = {
|
||||
filename: 'index.html'
|
||||
}
|
||||
},
|
||||
transpileDependencies: [/node_modules[/\\]dvcp-ui(.+)utils.js/],
|
||||
transpileDependencies: [/node_modules[/\\]dvcp-ui(.+)utils.js/, /node_modules[/\\]dvcp-ui(.+)modules.js/],
|
||||
chainWebpack: (config) => {
|
||||
config.module
|
||||
.rule('js')
|
||||
|
||||
Reference in New Issue
Block a user