Merge remote-tracking branch 'origin/dev' into build
# Conflicts: # packages/bigscreen/designer/components/Add.vue
This commit is contained in:
		| @@ -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 = { | ||||||
|   | |||||||
| @@ -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; | ||||||
|   | |||||||
| @@ -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"> | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user