Merge remote-tracking branch 'origin/dev' into build

# Conflicts:
#	packages/bigscreen/designer/components/Add.vue
This commit is contained in:
aixianling
2022-08-31 16:32:37 +08:00
5 changed files with 70 additions and 207 deletions

View File

@@ -150,27 +150,28 @@ export default {
}, },
methods: { methods: {
getInfo() { getInfo() {
let {id} = this.$route.query let {id} = this.$route.query
id && this.instance.post(`${this.urlPrefix}/appdiylargescreen/queryLargeScreenProjectDetailById?id=${id}`).then(res => { if (!id) return
if (res?.data) { this.instance.post(`${this.urlPrefix}/appdiylargescreen/queryLargeScreenProjectDetailById?id=${id}`).then(res => {
this.form = { if (res?.data) {
...res.data this.form = {
} ...res.data
if (res.data.relationLsIds) { }
this.tableData = res.data.lsList.map(v => { if (res.data.relationLsIds) {
let conf = JSON.parse(v.config || '') || {} this.tableData = res.data.lsList.map(v => {
return { let conf = JSON.parse(v.config || '') || {}
id: v.id, return {
title: v.title, id: v.id,
dv: conf.custom || '', title: v.title,
meta: JSON.stringify(conf.meta), dv: conf.custom || '',
isCustom: !!conf.custom, meta: JSON.stringify(conf.meta),
status: v.status isCustom: !!conf.custom,
} status: v.status
}) }
this.total = res.data.lsList.length })
this.total = res.data.lsList.length
this.$nextTick(() => { this.$nextTick(() => {
this.rowDrop() this.rowDrop()
@@ -180,14 +181,13 @@ export default {
}) })
}, },
onStatusChange(id) { onStatusChange (id) {
id && this.instance.post(`${this.urlPrefix}/appdiylargescreen/enableLargeScreen?id=${id}`).then(res => { this.instance.post(`${this.urlPrefix}/appdiylargescreen/enableLargeScreen?id=${id}`).then(res => {
if (res.code === 0) { if (res.code === 0) {
this.getInfo() this.$message.success('操作成功')
this.$message.success('操作成功') }
} })
}) },
},
rowDrop() { rowDrop() {
const tbody = document.querySelector('.el-table__body-wrapper tbody') const tbody = document.querySelector('.el-table__body-wrapper tbody')
@@ -200,21 +200,37 @@ export default {
}) })
}, },
toViewer(id) { toViewer(id) {
this.$router.push({query: {id}, hash: "#preview"}) this.$router.push({query: {id}, hash: "#preview"})
}, },
onChange(e) { onChange(e) {
const ids = this.tableData.map(v => v.id) const ids = this.tableData.map(v => v.id)
if (ids.indexOf(e.id) < 0) { if (ids.indexOf(e.id) < 0) {
this.tableData.push({ this.tableData.push({
title: e.title, title: e.title,
id: e.id id: e.id,
status: '1'
})
} else {
const index = this.tableData.findIndex(v => v.id === e.id)
this.$set(this.tableData[index], 'title', e.title)
}
this.$nextTick(() => {
if (this.$route.query.id) {
const ids = this.tableData.map(v => v.id).join(',')
const names = this.tableData.map(v => v.name).join(',')
this.instance.post(`${this.urlPrefix}/appdiylargescreen/addOrUpdateLargeScreenProject`, {
...this.form,
relationLsIds: ids,
relationLsNames: names
}).then(res => {
if (res.code == 0) {
}
})
}
}) })
} else { },
const index = this.tableData.findIndex(v => v.id === e.id)
this.$set(this.tableData[index], 'title', e.title)
}
},
add() { add() {
this.query = { this.query = {

View File

@@ -919,6 +919,7 @@ export default {
flex: 1; flex: 1;
padding: 0 10px; padding: 0 10px;
background: #0A0B0D; background: #0A0B0D;
overflow-y: auto;
.layout-left__right--item { .layout-left__right--item {
margin-top: 10px; margin-top: 10px;

View File

@@ -91,6 +91,12 @@
<div class="select-right">{{ form.examines.length ? '重新选择' : '选择' }}</div> <div class="select-right">{{ form.examines.length ? '重新选择' : '选择' }}</div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item v-if="form.sendScope !== '0'" label="性别" style="width: 100%;" prop="sendScope" :rules="[{ required: true, message: '请选择性别', trigger: 'change' }]">
<el-radio-group v-model="form.sendScope" @change="onScopeChange">
<el-radio label="0"></el-radio>
<el-radio label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="发送内容" prop="content" style="width: 100%;" :rules="[{ required: true, message: '请输入发送内容', trigger: 'blur' }]"> <el-form-item label="发送内容" prop="content" style="width: 100%;" :rules="[{ required: true, message: '请输入发送内容', trigger: 'blur' }]">
<el-input size="small" type="textarea" :rows="6" maxlength="1300" show-word-limit placeholder="请输入文本内容..." v-model="form.content"></el-input> <el-input size="small" type="textarea" :rows="6" maxlength="1300" show-word-limit placeholder="请输入文本内容..." v-model="form.content"></el-input>
<div class="add"> <div class="add">

View File

@@ -67,15 +67,9 @@
</ai-wrapper> </ai-wrapper>
</template> </template>
</ai-card> </ai-card>
<ai-card> <ai-card title="成员统计">
<template #title>
<div class="AppAnnounceDetail-title">
<span :class="[currIndex === 0 ? 'active' : '']" @click="currIndex = 0">成员统计</span>
<span :class="[currIndex === 1 ? 'active' : '']" @click="currIndex = 1">居民群统计</span>
</div>
</template>
<template #content> <template #content>
<div class="content-item" v-if="currIndex === 0"> <div class="content-item">
<div class="top"> <div class="top">
<div class="top-item"> <div class="top-item">
<div class="top-item__title"> <div class="top-item__title">
@@ -154,80 +148,6 @@
</ai-table> </ai-table>
</div> </div>
</div> </div>
<div class="content-item" v-if="currIndex === 1">
<div class="top">
<div class="top-item">
<div class="top-item__title">
<h3>计划送达居民群</h3>
</div>
<p>{{ groupInfo.planCount || 0 }}</p>
</div>
<div class="top-item">
<div class="top-item__title">
<h3>未送达居民群</h3>
</div>
<p>{{ groupInfo.unExecutedCount || 0 }}</p>
</div>
<div class="top-item">
<div class="top-item__title">
<h3>已送达居民群</h3>
</div>
<p>{{ groupInfo.executedCount || 0 }}</p>
</div>
<div class="top-item">
<div class="top-item__title">
<h3>无法送达居民群</h3>
</div>
<p>{{ groupInfo.cannotExecuteCount || 0 }}</p>
</div>
</div>
<div class="bottom">
<div class="bottom-search">
<div class="left">
<el-radio-group v-model="search2.sendStatus" size="small" @change="search2.current = 1, getGroupInfo()">
<el-radio-button size="small" label="0">未送达</el-radio-button>
<el-radio-button size="small" label="1">已送达</el-radio-button>
<el-radio-button size="small" label="2">无法送达</el-radio-button>
</el-radio-group>
<ai-picker
dialogTitle="选择部门"
action="/app/wxcp/wxdepartment/departList"
:instance="instance"
@pick="e => onUserChange(e, 'search2')" :multiple="false" v-model="user2">
<div class="userSelcet">
<span style="color: #606266;" v-if="search2.deptartId"><ai-open-data type="departmentName" :openid="search2.deptartId"></ai-open-data></span>
<span v-else>部门</span>
<i class="el-icon-arrow-up" v-if="!search2.deptartId"></i>
<i class="el-icon-circle-close" v-if="search2.deptartId" @click.stop="user1 = [], search2.deptartId = '', search2.current = 1, getGroupInfo()"></i>
</div>
</ai-picker>
</div>
<el-button :type="isDisabled ? '' : 'primary'" :disabled="isDisabled" @click="sendMsg(1)" v-if="info.status === '4'">{{ isDisabled ? min + '分钟后可再次提醒' : '提醒成员发送' }}</el-button>
</div>
<ai-table
:tableData="tableData2"
:col-configs="colConfigs2"
:total="total2"
border
tableSize="small"
:current.sync="search2.current"
:size.sync="search2.size"
@getList="getGroupInfo">
<el-table-column slot="user" label="群主" align="center">
<template slot-scope="{ row }">
<div class="userinfo">
<span>
<ai-open-data type="userName" :openid="row.groupOwnerId"></ai-open-data>
</span>
<span style="color: #999">
<ai-open-data type="departmentName" :openid="row.mainDepartment"></ai-open-data>
</span>
</div>
</template>
</el-table-column>
</ai-table>
</div>
</div>
</template> </template>
</ai-card> </ai-card>
<ai-dialog <ai-dialog

View File

@@ -67,15 +67,9 @@
</ai-wrapper> </ai-wrapper>
</template> </template>
</ai-card> </ai-card>
<ai-card> <ai-card title="成员统计">
<template #title>
<div class="AppAnnounceDetail-title">
<span :class="[currIndex === 0 ? 'active' : '']" @click="currIndex = 0">成员统计</span>
<span :class="[currIndex === 1 ? 'active' : '']" @click="currIndex = 1">居民群统计</span>
</div>
</template>
<template #content> <template #content>
<div class="content-item" v-if="currIndex === 0"> <div class="content-item">
<div class="top"> <div class="top">
<div class="top-item"> <div class="top-item">
<div class="top-item__title"> <div class="top-item__title">
@@ -154,80 +148,6 @@
</ai-table> </ai-table>
</div> </div>
</div> </div>
<div class="content-item" v-if="currIndex === 1">
<div class="top">
<div class="top-item">
<div class="top-item__title">
<h3>计划送达居民群</h3>
</div>
<p>{{ groupInfo.planCount || 0 }}</p>
</div>
<div class="top-item">
<div class="top-item__title">
<h3>未送达居民群</h3>
</div>
<p>{{ groupInfo.unExecutedCount || 0 }}</p>
</div>
<div class="top-item">
<div class="top-item__title">
<h3>已送达居民群</h3>
</div>
<p>{{ groupInfo.executedCount || 0 }}</p>
</div>
<div class="top-item">
<div class="top-item__title">
<h3>无法送达居民群</h3>
</div>
<p>{{ groupInfo.cannotExecuteCount || 0 }}</p>
</div>
</div>
<div class="bottom">
<div class="bottom-search">
<div class="left">
<el-radio-group v-model="search2.sendStatus" size="small" @change="search2.current = 1, getGroupInfo()">
<el-radio-button size="small" label="0">未送达</el-radio-button>
<el-radio-button size="small" label="1">已送达</el-radio-button>
<el-radio-button size="small" label="2">无法送达</el-radio-button>
</el-radio-group>
<ai-picker
dialogTitle="选择部门"
action="/app/wxcp/wxdepartment/departList"
:instance="instance"
@pick="e => onUserChange(e, 'search2')" :multiple="false" v-model="user2">
<div class="userSelcet">
<span style="color: #606266;" v-if="search2.deptartId"><ai-open-data type="departmentName" :openid="search2.deptartId"></ai-open-data></span>
<span v-else>部门</span>
<i class="el-icon-arrow-up" v-if="!search2.deptartId"></i>
<i class="el-icon-circle-close" v-if="search2.deptartId" @click.stop="user1 = [], search2.deptartId = '', search2.current = 1, getGroupInfo()"></i>
</div>
</ai-picker>
</div>
<el-button :type="isDisabled ? '' : 'primary'" :disabled="isDisabled" @click="sendMsg(1)" v-if="info.status === '4'">{{ isDisabled ? min + '分钟后可再次提醒' : '提醒成员发送' }}</el-button>
</div>
<ai-table
:tableData="tableData2"
:col-configs="colConfigs2"
:total="total2"
border
tableSize="small"
:current.sync="search2.current"
:size.sync="search2.size"
@getList="getGroupInfo">
<el-table-column slot="user" label="群主" align="center">
<template slot-scope="{ row }">
<div class="userinfo">
<span>
<ai-open-data type="userName" :openid="row.groupOwnerId"></ai-open-data>
</span>
<span style="color: #999">
<ai-open-data type="departmentName" :openid="row.mainDepartment"></ai-open-data>
</span>
</div>
</template>
</el-table-column>
</ai-table>
</div>
</div>
</template> </template>
</ai-card> </ai-card>
<ai-dialog <ai-dialog