BUG 26973
This commit is contained in:
		| @@ -37,7 +37,8 @@ | ||||
|           <div class="list-item" v-for="(item, index) in list" :key="index"> | ||||
|             <div> | ||||
|               <div class="list-item__title"> | ||||
|                 <h2 :style="{color: dict.getColor('questionnaireStatus', item.status)}">{{ dict.getLabel('questionnaireStatus', item.status) }}</h2> | ||||
|                 <h2 :style="{color: dict.getColor('questionnaireStatus', item.status)}"> | ||||
|                   {{ dict.getLabel('questionnaireStatus', item.status) }}</h2> | ||||
|                 <span :class="'type-' + item.type">{{ dict.getLabel('questionnaireType', item.type) }}</span> | ||||
|               </div> | ||||
|               <p>{{ item.title }}</p> | ||||
| @@ -271,7 +272,7 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   export default { | ||||
| export default { | ||||
|   name: 'FormList', | ||||
|   props: { | ||||
|     instance: Function, | ||||
| @@ -279,7 +280,7 @@ | ||||
|     areaId: String | ||||
|   }, | ||||
|  | ||||
|     data () { | ||||
|   data() { | ||||
|     return { | ||||
|       search: { | ||||
|         current: 1, | ||||
| @@ -290,7 +291,7 @@ | ||||
|         title: '' | ||||
|       }, | ||||
|       pickerOptions: { | ||||
|           disabledDate (time) { | ||||
|         disabledDate(time) { | ||||
|           return time.getTime() < Date.now() - 24 * 60 * 60 * 1000 | ||||
|         } | ||||
|       }, | ||||
| @@ -317,7 +318,7 @@ | ||||
|     } | ||||
|   }, | ||||
|  | ||||
|     created () { | ||||
|   created() { | ||||
|     this.loading = true | ||||
|     this.dict.load(['questionnaireStatus', 'questionnaireType', 'questionnaireFieldType']).then(() => { | ||||
|       this.getList() | ||||
| @@ -325,7 +326,7 @@ | ||||
|   }, | ||||
|  | ||||
|   methods: { | ||||
|       onClose () { | ||||
|     onClose() { | ||||
|       this.id = '' | ||||
|       this.editForm.commitType = '1' | ||||
|       this.editForm.periodValidityType = '0' | ||||
| @@ -336,7 +337,7 @@ | ||||
|       this.editForm.wechatId = '0' | ||||
|     }, | ||||
|  | ||||
|       getList () { | ||||
|     getList() { | ||||
|       this.instance.post(`/app/appquestionnairetemplate/list`, null, { | ||||
|         params: { | ||||
|           ...this.search, | ||||
| @@ -349,7 +350,7 @@ | ||||
|           this.loading = false | ||||
|  | ||||
|           this.$nextTick(() => { | ||||
|               this.$initWxOpenData() | ||||
|  | ||||
|           }) | ||||
|         } else { | ||||
|           this.loading = false | ||||
| @@ -358,7 +359,7 @@ | ||||
|         this.loading = false | ||||
|       }) | ||||
|     }, | ||||
|       publish () { | ||||
|     publish() { | ||||
|       this.instance.post(`/app/appquestionnairetemplate/release`, null, { | ||||
|         params: { | ||||
|           ...this.editForm, | ||||
| @@ -381,10 +382,10 @@ | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       downloadImg (url) { | ||||
|     downloadImg(url) { | ||||
|       let image = new Image() | ||||
|       image.setAttribute('crossOrigin', 'anonymous') | ||||
|         image.onload = function() { | ||||
|       image.onload = function () { | ||||
|         let canvas = document.createElement('canvas') | ||||
|         canvas.width = image.width | ||||
|         canvas.height = image.height | ||||
| @@ -400,7 +401,7 @@ | ||||
|       image.src = url | ||||
|     }, | ||||
|  | ||||
|       toStop (id) { | ||||
|     toStop(id) { | ||||
|       this.$confirm('确定停止该表单?').then(() => { | ||||
|         this.instance.post(`/app/appquestionnairetemplate/stopRelease?id=${id}`).then(res => { | ||||
|           if (res.code === 0) { | ||||
| @@ -411,19 +412,19 @@ | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       handleSizeChange () { | ||||
|     handleSizeChange() { | ||||
|       this.$nextTick(() => { | ||||
|         this.getList() | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       handleChange () { | ||||
|     handleChange() { | ||||
|       this.$nextTick(() => { | ||||
|         this.getList() | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       handleCommand (e, id, type) { | ||||
|     handleCommand(e, id, type) { | ||||
|       if (e === 'edit') { | ||||
|         this.toEdit(id, type) | ||||
|       } else if (e === 'share') { | ||||
| @@ -451,7 +452,7 @@ | ||||
|       } | ||||
|     }, | ||||
|  | ||||
|       exportFile (id, title) { | ||||
|     exportFile(id, title) { | ||||
|       this.instance.post(`/app/appquestionnairetemplate/export?id=${id}`, null, { | ||||
|         responseType: 'blob' | ||||
|       }).then(res => { | ||||
| @@ -466,7 +467,7 @@ | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       showShare (info, isPreview) { | ||||
|     showShare(info, isPreview) { | ||||
|       this.loading = true | ||||
|       this.info = info | ||||
|  | ||||
| @@ -491,7 +492,7 @@ | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       copy (link) { | ||||
|     copy(link) { | ||||
|       let oInput = document.createElement('input') | ||||
|       oInput.value = link | ||||
|       document.body.appendChild(oInput) | ||||
| @@ -504,7 +505,7 @@ | ||||
|       oInput.remove() | ||||
|     }, | ||||
|  | ||||
|       toEdit (id, type) { | ||||
|     toEdit(id, type) { | ||||
|       this.$emit('change', { | ||||
|         type: 'add', | ||||
|         params: { | ||||
| @@ -515,7 +516,7 @@ | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       onConfirm () { | ||||
|     onConfirm() { | ||||
|       this.$emit('change', { | ||||
|         type: 'add', | ||||
|         params: { | ||||
| @@ -526,15 +527,15 @@ | ||||
|       }) | ||||
|     } | ||||
|   } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
|   .form-list { | ||||
| .form-list { | ||||
|   ::v-deep .ai-list__content--right-wrapper { | ||||
|       background: transparent!important; | ||||
|       box-shadow: none!important; | ||||
|       padding: 12px 0 12px!important; | ||||
|     background: transparent !important; | ||||
|     box-shadow: none !important; | ||||
|     padding: 12px 0 12px !important; | ||||
|   } | ||||
|  | ||||
|   ::v-deep.el-pager { | ||||
| @@ -630,6 +631,7 @@ | ||||
|           color: #FF4466; | ||||
|           font-size: 14px; | ||||
|         } | ||||
|  | ||||
|         h2 { | ||||
|           color: #222222; | ||||
|           font-size: 14px; | ||||
| @@ -648,12 +650,13 @@ | ||||
|     display: flex; | ||||
|     align-items: center; | ||||
|     height: 64px; | ||||
|       padding: 0 40px!important; | ||||
|     padding: 0 40px !important; | ||||
|  | ||||
|     .el-pagination { | ||||
|       width: 100%; | ||||
|       padding: 0; | ||||
|     } | ||||
|  | ||||
|     ::v-deep .el-pager li.active { | ||||
|       background-color: #fff !important; | ||||
|       color: #2266FF !important; | ||||
| @@ -743,7 +746,7 @@ | ||||
|  | ||||
|   .ai-dialog__success { | ||||
|     ::v-deep .ai-dialog__content { | ||||
|         max-height: initial!important; | ||||
|       max-height: initial !important; | ||||
|     } | ||||
|   } | ||||
|  | ||||
| @@ -780,6 +783,7 @@ | ||||
|         display: flex; | ||||
|         align-items: center; | ||||
|         justify-content: space-between; | ||||
|  | ||||
|         &:last-child { | ||||
|           img { | ||||
|             width: 120px; | ||||
| @@ -809,7 +813,7 @@ | ||||
|             height: 130px; | ||||
|             padding: 5px; | ||||
|             background: #FFFFFF; | ||||
|               box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.08); | ||||
|             box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.08); | ||||
|             border-radius: 4px; | ||||
|             border: 1px solid #E4E8EF; | ||||
|           } | ||||
| @@ -873,7 +877,7 @@ | ||||
|       h2 { | ||||
|         margin-top: 16px; | ||||
|         color: #222222; | ||||
|           font-size: 20ox; | ||||
|         font-size: 20 ox; | ||||
|         font-weight: 600; | ||||
|       } | ||||
|     } | ||||
| @@ -949,6 +953,7 @@ | ||||
|         ::v-deep .el-button { | ||||
|           margin-left: 0; | ||||
|           padding: 0; | ||||
|  | ||||
|           i { | ||||
|             color: #8899BB; | ||||
|             font-size: 14px; | ||||
| @@ -1072,7 +1077,7 @@ | ||||
|       height: 196px; | ||||
|       margin: 0 20px 20px 0; | ||||
|       background: #FFFFFF; | ||||
|         box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.05); | ||||
|       box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.05); | ||||
|       border-radius: 2px; | ||||
|  | ||||
|       &:nth-of-type(4n) { | ||||
| @@ -1080,5 +1085,5 @@ | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -8,10 +8,12 @@ | ||||
|         <template #content> | ||||
|           <ai-wrapper label-width="90px"> | ||||
|             <ai-info-item label="表单名称" :value="info.title" isLine></ai-info-item> | ||||
|             <ai-info-item label="发布状态"><span :style="{color: dict.getColor('questionnaireStatus', info.status)}">已发布</span></ai-info-item> | ||||
|             <ai-info-item label="发布状态"><span | ||||
|                 :style="{color: dict.getColor('questionnaireStatus', info.status)}">已发布</span></ai-info-item> | ||||
|             <ai-info-item label="创建人" :value="info.createUserName"></ai-info-item> | ||||
|             <ai-info-item label="创建时间" :value="info.createTime"></ai-info-item> | ||||
|             <ai-info-item label="截止时间" :value="info.periodValidityEndTime ? info.periodValidityEndTime : '永久有效'"></ai-info-item> | ||||
|             <ai-info-item label="截止时间" | ||||
|                           :value="info.periodValidityEndTime ? info.periodValidityEndTime : '永久有效'"></ai-info-item> | ||||
|             <ai-info-item label="提交次数限制" :value="info.commitType === '1' ? '限提交一次' : '不限次数' "></ai-info-item> | ||||
|           </ai-wrapper> | ||||
|         </template> | ||||
| @@ -33,7 +35,8 @@ | ||||
|             </div> | ||||
|             <div class="statistics-wrapper__body--list"> | ||||
|               <div class="statistics-wrapper__body--item" v-for="(item, index) in subjectList" :key="index"> | ||||
|                 <div class="statistics-wrapper__body--top" :style="{borderBottom: ['input', 'textarea', 'upload'].indexOf(item.type) > -1 ? 'none' : '1px solid #DDDDDD'}"> | ||||
|                 <div class="statistics-wrapper__body--top" | ||||
|                      :style="{borderBottom: ['input', 'textarea', 'upload'].indexOf(item.type) > -1 ? 'none' : '1px solid #DDDDDD'}"> | ||||
|                   <div class="left"> | ||||
|                     <h2>{{ item.fieldName }}({{ item.fixedLabel }})</h2> | ||||
|                   </div> | ||||
| @@ -43,7 +46,8 @@ | ||||
|                     <span>条数据</span> | ||||
|                   </div> | ||||
|                 </div> | ||||
|                 <div class="statistics-wrapper__body--bottom" v-if="['radio', 'checkbox', 'select'].indexOf(item.type) > -1"> | ||||
|                 <div class="statistics-wrapper__body--bottom" | ||||
|                      v-if="['radio', 'checkbox', 'select'].indexOf(item.type) > -1"> | ||||
|                   <div class="statistics-wrapper__body--select" v-for="(item, i) in item.options" :key="i"> | ||||
|                     <div class="left"> | ||||
|                       <h2>{{ item.label }}</h2> | ||||
| @@ -51,7 +55,8 @@ | ||||
|                     </div> | ||||
|                     <div class="right"> | ||||
|                       <div class="progress"> | ||||
|                         <div :style="{width: `${(((item.c || 0) / fieldDataCount[`field_${index}`]) * 100).toFixed(2)}%`}"></div> | ||||
|                         <div | ||||
|                             :style="{width: `${(((item.c || 0) / fieldDataCount[`field_${index}`]) * 100).toFixed(2)}%`}"></div> | ||||
|                       </div> | ||||
|                       <i>{{ (((item.c || 0) / fieldDataCount[`field_${index}`]) * 100).toFixed(2) }}%</i> | ||||
|                     </div> | ||||
| @@ -90,7 +95,9 @@ | ||||
|                   <div class="userinfo"> | ||||
|                     <img :src="row.avatarUrl || 'https://cdn.cunwuyun.cn/dvcp/h5/defaultAvatar.png'"> | ||||
|                     <!-- <h3>{{ row.nickName }}</h3> --> | ||||
|                     <el-tooltip effect="dark" :content="row.corpName ? row.nickName + '@' + row.corpFullName : row.nickName + ''" placement="top"> | ||||
|                     <el-tooltip effect="dark" | ||||
|                                 :content="row.corpName ? row.nickName + '@' + row.corpFullName : row.nickName + ''" | ||||
|                                 placement="top"> | ||||
|                       <div class="userinfo-right__top"> | ||||
|                         <h3>{{ row.corpName ? row.nickName : row.nickName }}</h3> | ||||
|                         <span class="ellipsis">{{ row.corpName ? '@' + row.corpName : '' }}</span> | ||||
| @@ -102,7 +109,9 @@ | ||||
|               <el-table-column slot="tags" label="标签" align="center" width="240px"> | ||||
|                 <template slot-scope="{ row }"> | ||||
|                   <div class="table-tags" v-if="row.tagNames"> | ||||
|                     <el-tag type="info" v-for="(item, index) in row.tagNames.split(',')" size="medium" :key="index">{{ item }}</el-tag> | ||||
|                     <el-tag type="info" v-for="(item, index) in row.tagNames.split(',')" size="medium" :key="index"> | ||||
|                       {{ item }} | ||||
|                     </el-tag> | ||||
|                   </div> | ||||
|                   <span v-else></span> | ||||
|                 </template> | ||||
| @@ -146,9 +155,9 @@ | ||||
|                   <h2>{{ item.label }}</h2> | ||||
|                 </div> | ||||
|                 <div class="left-item__item--wrapper"> | ||||
|                   <template v-if="(item.type === 'radio')" > | ||||
|                     <div class="radio-item" v-for="(field, index) in item.options" :key="index" > | ||||
|                       <input type="radio" disabled :value="field.label" v-model="formInfo[`field_${i}`]" /> | ||||
|                   <template v-if="(item.type === 'radio')"> | ||||
|                     <div class="radio-item" v-for="(field, index) in item.options" :key="index"> | ||||
|                       <input type="radio" disabled :value="field.label" v-model="formInfo[`field_${i}`]"/> | ||||
|                       <img :src="field.img[0].url" v-if="field.img.length"> | ||||
|                       <label>{{ field.label }}</label> | ||||
|                     </div> | ||||
| @@ -159,8 +168,9 @@ | ||||
|                       <span>图片</span> | ||||
|                     </div> | ||||
|                   </template> | ||||
|                   <template v-if="item.type === 'select'" > | ||||
|                     <el-input resize="none" class="preview" type="textarea" style="color: #333" :placeholder="item.placeholder" v-model="formInfo[`field_${i}`]" disabled></el-input> | ||||
|                   <template v-if="item.type === 'select'"> | ||||
|                     <el-input resize="none" class="preview" type="textarea" style="color: #333" | ||||
|                               :placeholder="item.placeholder" v-model="formInfo[`field_${i}`]" disabled></el-input> | ||||
|                     <!-- <span>{{ formInfo[`field_${i}`] }}</span> --> | ||||
|                     <!-- <textarea :placeholder="item.placeholder" v-model="formInfo[`field_${i}`]" disabled></textarea> --> | ||||
|                     <!-- <el-select placeholder="请选择" disabled v-model="formInfo[`field_${i}`]" style="width: 100%;"> | ||||
| @@ -172,19 +182,19 @@ | ||||
|                       </el-option> | ||||
|                     </el-select> --> | ||||
|                   </template> | ||||
|                   <template v-if="(item.type === 'checkbox')" > | ||||
|                     <div class="radio-item" v-for="(field, index) in item.options" :key="index" > | ||||
|                       <input type="checkbox" disabled :value="field.label" v-model="formInfo[`field_${i}`]" /> | ||||
|                   <template v-if="(item.type === 'checkbox')"> | ||||
|                     <div class="radio-item" v-for="(field, index) in item.options" :key="index"> | ||||
|                       <input type="checkbox" disabled :value="field.label" v-model="formInfo[`field_${i}`]"/> | ||||
|                       <img :src="field.img[0].url" v-if="field.img.length"> | ||||
|                       <label>{{ field.label }}</label> | ||||
|                     </div> | ||||
|                   </template> | ||||
|                   <template v-if="(item.type === 'input')" > | ||||
|                   <template v-if="(item.type === 'input')"> | ||||
|                     <div class="text-item"> | ||||
|                       <input :placeholder="item.placeholder" v-model="formInfo[`field_${i}`]" disabled> | ||||
|                     </div> | ||||
|                   </template> | ||||
|                   <template v-if="(item.type === 'textarea')" > | ||||
|                   <template v-if="(item.type === 'textarea')"> | ||||
|                     <div class="textarea-item" resize="none"> | ||||
|                       <textarea :placeholder="item.placeholder" v-model="formInfo[`field_${i}`]" disabled></textarea> | ||||
|                     </div> | ||||
| @@ -203,7 +213,7 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   export default { | ||||
| export default { | ||||
|   name: 'Statistics', | ||||
|  | ||||
|   props: { | ||||
| @@ -212,7 +222,7 @@ | ||||
|     params: Object | ||||
|   }, | ||||
|  | ||||
|     data () { | ||||
|   data() { | ||||
|     return { | ||||
|       currIndex: 0, | ||||
|       search: { | ||||
| @@ -233,17 +243,23 @@ | ||||
|       formInfo: {}, | ||||
|       colConfigs: [ | ||||
|         {slot: 'userinfo'}, | ||||
|           {prop: 'residentName', label: '真实姓名', align: 'center', width: '100px' }, | ||||
|           {prop: 'commitTime', label: '提交时间', align: 'center', width: '160px' }, | ||||
|           {prop: 'userType', label: '微信类型', align: 'center', width: '100px', formart: v => this.dict.getLabel('wxUserType', v) }, | ||||
|           {prop: 'wxUserNames', label: '所属员工', align: 'center', width: '100px' }, | ||||
|         {prop: 'residentName', label: '真实姓名', align: 'center', width: '100px'}, | ||||
|         {prop: 'commitTime', label: '提交时间', align: 'center', width: '160px'}, | ||||
|         { | ||||
|           prop: 'userType', | ||||
|           label: '微信类型', | ||||
|           align: 'center', | ||||
|           width: '100px', | ||||
|           formart: v => this.dict.getLabel('wxUserType', v) | ||||
|         }, | ||||
|         {prop: 'wxUserNames', label: '所属员工', align: 'center', width: '100px'}, | ||||
|         {slot: 'tags', label: '标签', align: 'center', width: '268px'}, | ||||
|         {prop: 'totalScore', label: '分值', align: 'center'} | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|  | ||||
|     mounted () { | ||||
|   mounted() { | ||||
|     this.getInfo() | ||||
|     this.getFormInfo() | ||||
|  | ||||
| @@ -252,7 +268,7 @@ | ||||
|     }) | ||||
|   }, | ||||
|   methods: { | ||||
|       getList () { | ||||
|     getList() { | ||||
|       this.instance.post(`/app/appquestionnairetemplate/statisticsResident?id=${this.params.id}`, null, { | ||||
|         params: { | ||||
|           ...this.search | ||||
| @@ -261,12 +277,12 @@ | ||||
|         if (res.code == 0) { | ||||
|           this.tableData = res.data.records | ||||
|           this.total = res.data.total | ||||
|             this.$initWxOpenData() | ||||
|  | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       showForm (id) { | ||||
|     showForm(id) { | ||||
|       this.instance.post(`/app/appquestionnairetemplate/queryDataInfoById?id=${this.params.id}&dataId=${id}`).then(res => { | ||||
|         if (res.code == 0) { | ||||
|           this.formInfo = res.data | ||||
| @@ -282,7 +298,7 @@ | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       mapType (type) { | ||||
|     mapType(type) { | ||||
|       return { | ||||
|         upload: '上传图片', | ||||
|         input: '单行填空', | ||||
| @@ -293,7 +309,7 @@ | ||||
|       }[type] | ||||
|     }, | ||||
|  | ||||
|       getFormInfo () { | ||||
|     getFormInfo() { | ||||
|       this.instance.post(`/app/appquestionnairetemplate/statisticsTable?id=${this.params.id}`, null, { | ||||
|         params: { | ||||
|           ...this.search | ||||
| @@ -329,30 +345,30 @@ | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       getInfo () { | ||||
|     getInfo() { | ||||
|       this.instance.post(`/app/appquestionnairetemplate/queryDetailById?id=${this.params.id}`).then(res => { | ||||
|         if (res.code == 0) { | ||||
|           this.info = res.data | ||||
|           this.targetList = res.data.fields.map(item => { | ||||
|             return JSON.parse(item.fieldInfo) | ||||
|           }) | ||||
|             this.$initWxOpenData() | ||||
|  | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       cancel (isRefresh) { | ||||
|     cancel(isRefresh) { | ||||
|       this.$emit('change', { | ||||
|         type: 'list', | ||||
|         isRefresh: !!isRefresh | ||||
|       }) | ||||
|     } | ||||
|   } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
|   .statistics { | ||||
| .statistics { | ||||
|   * { | ||||
|     box-sizing: border-box; | ||||
|     font-weight: normal; | ||||
| @@ -361,7 +377,7 @@ | ||||
|  | ||||
|   .preview { | ||||
|     ::v-deep .el-textarea.is-disabled, ::v-deep .el-textarea__inner { | ||||
|         color: #666!important; | ||||
|       color: #666 !important; | ||||
|     } | ||||
|   } | ||||
|  | ||||
| @@ -585,7 +601,7 @@ | ||||
|  | ||||
|   .statistics-wrapper { | ||||
|     background: #FFFFFF; | ||||
|       box-shadow: 0px 4px 6px -2px rgba(15, 15, 21, 0.15); | ||||
|     box-shadow: 0 4px 6px -2px rgba(15, 15, 21, 0.15); | ||||
|     border-radius: 2px; | ||||
|  | ||||
|     .statistics-wrapper__title { | ||||
| @@ -645,7 +661,7 @@ | ||||
|               max-width: 384px; | ||||
|               margin-right: 10px; | ||||
|               overflow: hidden; | ||||
|                 text-overflow:ellipsis; | ||||
|               text-overflow: ellipsis; | ||||
|               white-space: nowrap; | ||||
|               font-size: 12px; | ||||
|               color: #222222; | ||||
| @@ -693,7 +709,7 @@ | ||||
|         height: 70px; | ||||
|         padding: 0 20px; | ||||
|         background: #FFFFFF; | ||||
|           border-radius: 4px 4px 0px 0px; | ||||
|         border-radius: 4px 4px 0 0; | ||||
|         border-bottom: 1px solid #DDDDDD; | ||||
|  | ||||
|         & > div { | ||||
| @@ -704,6 +720,7 @@ | ||||
|  | ||||
|         .left { | ||||
|           flex: 1; | ||||
|  | ||||
|           h2 { | ||||
|             color: #222222; | ||||
|             font-size: 14px; | ||||
| @@ -741,5 +758,5 @@ | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -95,7 +95,7 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   export default { | ||||
| export default { | ||||
|   name: 'Template', | ||||
|  | ||||
|   props: { | ||||
| @@ -103,7 +103,7 @@ | ||||
|     dict: Object | ||||
|   }, | ||||
|  | ||||
|     data () { | ||||
|   data() { | ||||
|     return { | ||||
|       search: { | ||||
|         current: 1, | ||||
| @@ -117,23 +117,23 @@ | ||||
|       isShow: false, | ||||
|       total: 10, | ||||
|       colConfigs: [ | ||||
|           { prop: 'title',  label: '模板名称', align: 'left' }, | ||||
|           { slot: 'type', label: '项目类型', align: 'center' }, | ||||
|           { prop: 'quoteCount',  label: '引用次数', align: 'center' }, | ||||
|           { prop: 'createUserName', label: '创建人', align: 'center' }, | ||||
|           { prop: 'createUnitName', label: '创建单位', align: 'center' }, | ||||
|           { prop: 'createTime', label: '创建时间', align: 'center' } | ||||
|         {prop: 'title', label: '模板名称', align: 'left'}, | ||||
|         {slot: 'type', label: '项目类型', align: 'center'}, | ||||
|         {prop: 'quoteCount', label: '引用次数', align: 'center'}, | ||||
|         {prop: 'createUserName', label: '创建人', align: 'center'}, | ||||
|         {prop: 'createUnitName', label: '创建单位', align: 'center'}, | ||||
|         {prop: 'createTime', label: '创建时间', align: 'center'} | ||||
|       ], | ||||
|       tableData: [] | ||||
|     } | ||||
|   }, | ||||
|  | ||||
|     mounted () { | ||||
|   mounted() { | ||||
|     this.getList() | ||||
|   }, | ||||
|  | ||||
|   methods: { | ||||
|       getList () { | ||||
|     getList() { | ||||
|       this.instance.post(`/app/appquestionnairetemplate/list`, null, { | ||||
|         params: { | ||||
|           ...this.search | ||||
| @@ -142,12 +142,12 @@ | ||||
|         if (res.code == 0) { | ||||
|           this.tableData = res.data.records | ||||
|           this.total = res.data.total | ||||
|             this.$initWxOpenData() | ||||
|  | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       quote (id, type) { | ||||
|     quote(id, type) { | ||||
|       this.$emit('change', { | ||||
|         type: 'add', | ||||
|         params: { | ||||
| @@ -159,7 +159,7 @@ | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       remove (id) { | ||||
|     remove(id) { | ||||
|       this.$confirm('确定删除该数据?').then(() => { | ||||
|         this.instance.post(`/app/appquestionnairetemplate/deleteShareTemplate?ids=${id}`).then(res => { | ||||
|           if (res.code == 0) { | ||||
| @@ -170,7 +170,7 @@ | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       toAdd (id) { | ||||
|     toAdd(id) { | ||||
|       this.$emit('change', { | ||||
|         type: 'Add', | ||||
|         params: { | ||||
| @@ -179,7 +179,7 @@ | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       toEdit (id, type) { | ||||
|     toEdit(id, type) { | ||||
|       this.$emit('change', { | ||||
|         type: 'add', | ||||
|         params: { | ||||
| @@ -190,7 +190,7 @@ | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|       onConfirm () { | ||||
|     onConfirm() { | ||||
|       this.$emit('change', { | ||||
|         type: 'add', | ||||
|         params: { | ||||
| @@ -201,11 +201,11 @@ | ||||
|       }) | ||||
|     } | ||||
|   } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
|   .template { | ||||
| .template { | ||||
|   .tags-wrapper { | ||||
|     display: flex; | ||||
|     justify-content: center; | ||||
| @@ -223,7 +223,6 @@ | ||||
|       height: 64px; | ||||
|       margin-right: 20px; | ||||
|       background: #FFFFFF; | ||||
|         border-radius: 2px; | ||||
|       // box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.08); | ||||
|       border-radius: 2px; | ||||
|       cursor: pointer; | ||||
| @@ -279,5 +278,5 @@ | ||||
|     color: rgba(236, 68, 97, 1); | ||||
|     background: rgba(236, 68, 97, 0.1); | ||||
|   } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -246,7 +246,7 @@ export default { | ||||
|         if (res?.data) { | ||||
|           this.info.attendees = res.data.records; | ||||
|           this.total = res.data.total; | ||||
|           this.$initWxOpenData() | ||||
|  | ||||
|         } | ||||
|       }); | ||||
|     }, | ||||
|   | ||||
| @@ -133,7 +133,7 @@ export default { | ||||
|         if (res && res.data) { | ||||
|           this.tableData = res.data.records; | ||||
|           this.total = res.data.total; | ||||
|           this.$initWxOpenData() | ||||
|  | ||||
|         } | ||||
|       }); | ||||
|     }, | ||||
|   | ||||
| @@ -114,7 +114,7 @@ export default { | ||||
|         if (res?.data) { | ||||
|           this.tableData = res.data.records | ||||
|           this.page.total = res.data.total | ||||
|           this.$initWxOpenData() | ||||
|  | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|   | ||||
| @@ -1,7 +1,8 @@ | ||||
| <template> | ||||
|   <ai-detail> | ||||
|     <template slot="title"> | ||||
|       <ai-title :title="detail.id ? '编辑公告' : '创建公告'" isShowBack isShowBottomBorder @onBackClick="$parent.goBack"></ai-title> | ||||
|       <ai-title :title="detail.id ? '编辑公告' : '创建公告'" isShowBack isShowBottomBorder | ||||
|                 @onBackClick="$parent.goBack"></ai-title> | ||||
|     </template> | ||||
|     <template #content> | ||||
|       <ai-card title="基本信息"> | ||||
| @@ -20,7 +21,7 @@ | ||||
|               <el-row type="flex" align="middle"> | ||||
|                 <div class="text-area"> | ||||
|                   <span v-text="item.name"/> | ||||
|                    <span v-if="persons.length">等{{persons.length}}人</span> | ||||
|                   <span v-if="persons.length">等{{ persons.length }}人</span> | ||||
|                 </div> | ||||
|                 <ai-wechat-selecter v-model="form.persons" :instance="instance" @change="onChange"> | ||||
|                   <el-button type="info">选择</el-button> | ||||
| @@ -58,7 +59,7 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   export default { | ||||
| export default { | ||||
|   name: "add", | ||||
|   props: { | ||||
|     instance: Function, | ||||
| @@ -76,7 +77,7 @@ | ||||
|         type: 0, | ||||
|         releaseTime: null, | ||||
|       }, | ||||
|         persons:[], | ||||
|       persons: [], | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
| @@ -101,7 +102,7 @@ | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|       onChange(e){ | ||||
|     onChange(e) { | ||||
|       this.form.persons = e; | ||||
|       this.persons = e; | ||||
|       this.$refs["form"].validateField("persons"); | ||||
| @@ -109,7 +110,7 @@ | ||||
|     confim(e) { | ||||
|       this.$refs["form"].validate(v => { | ||||
|         if (v) { | ||||
|             if(this.form.releaseTime && (new Date(this.form.releaseTime).getTime() <= Date.now())){ | ||||
|           if (this.form.releaseTime && (new Date(this.form.releaseTime).getTime() <= Date.now())) { | ||||
|             return this.$message.error("发送时间要大于当前时间") | ||||
|           } | ||||
|           this.instance.post("/app/appannouncement/addOrUpdate", { | ||||
| @@ -117,67 +118,69 @@ | ||||
|             status: e | ||||
|           }).then(res => { | ||||
|             if (res.code == 0) { | ||||
|                 this.$message.success(e==0?"保存成功":"发布成功"); | ||||
|               this.$message.success(e == 0 ? "保存成功" : "发布成功"); | ||||
|               this.$parent.goBack(); | ||||
|             } | ||||
|           }) | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|       getDetail(){ | ||||
|         this.instance.post("/app/appannouncement/detail",null,{ | ||||
|           params:{ | ||||
|             id:this.detail.id | ||||
|     getDetail() { | ||||
|       this.instance.post("/app/appannouncement/detail", null, { | ||||
|         params: { | ||||
|           id: this.detail.id | ||||
|         } | ||||
|         }).then(res=>{ | ||||
|           if(res && res.data){ | ||||
|             Object.keys(this.form).map(e=>this.form[e] = res.data[e]); | ||||
|       }).then(res => { | ||||
|         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() | ||||
|  | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|   }, | ||||
|     mounted(){ | ||||
|       if(this.detail?.id){ | ||||
|   mounted() { | ||||
|     if (this.detail?.id) { | ||||
|       this.getDetail(); | ||||
|     } | ||||
|   } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
|   ::v-deep .picker { | ||||
| ::v-deep .picker { | ||||
|   width: 300px; | ||||
|  | ||||
|   .el-form-item__content { | ||||
|     margin-left: 0 !important; | ||||
|   } | ||||
|   } | ||||
| } | ||||
|  | ||||
|   .text-area{ | ||||
|     width:995px; | ||||
|     height:32px; | ||||
|     background-color:#F5F5F5; | ||||
| .text-area { | ||||
|   width: 995px; | ||||
|   height: 32px; | ||||
|   background-color: #F5F5F5; | ||||
|   border: 1px solid #d0d4dc; | ||||
|   border-radius: 2px; | ||||
|   display: flex; | ||||
|   align-items: center; | ||||
|   box-sizing: border-box; | ||||
|     padding:0 6px; | ||||
|   padding: 0 6px; | ||||
|   color: #666666; | ||||
|   text-overflow: ellipsis; | ||||
|   overflow: hidden; | ||||
|   white-space: nowrap; | ||||
| } | ||||
|  | ||||
| ::v-deep .AiOpenData { | ||||
|   height: auto !important; | ||||
|  | ||||
|   &:after { | ||||
|     content: "、"; | ||||
|   } | ||||
|  | ||||
|   ::v-deep .AiOpenData{ | ||||
|     height:auto !important; | ||||
|     &:after{ | ||||
|       content:"、"; | ||||
|     } | ||||
|     &:nth-child(2):after{ | ||||
|       content:""; | ||||
|     } | ||||
|   &:nth-child(2):after { | ||||
|     content: ""; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -7,7 +7,7 @@ | ||||
|       <ai-card :title="detailObj.title" class="title"> | ||||
|         <template #content> | ||||
|           <el-row type="flex" justify="space-between" class="info"> | ||||
|             <span>时间:{{detailObj.releaseTime}}</span> | ||||
|             <span>时间:{{ detailObj.releaseTime }}</span> | ||||
|             <span style="display:flex">发布单位: | ||||
|             <span v-text="detailObj.unitName"/> | ||||
|             </span> | ||||
| @@ -20,9 +20,10 @@ | ||||
|       </ai-card> | ||||
|       <ai-card title="附件" v-if="detailObj.files && detailObj.files.length"> | ||||
|         <template #content> | ||||
|           <el-row type="flex" justify="space-between" class="file" v-for="(item,index) in detailObj.files" :key="index" @click.native="open(item)"> | ||||
|             <span>{{item.fileName}}</span> | ||||
|             <span>{{(item.size/1024).toFixed(2)}}KB</span> | ||||
|           <el-row type="flex" justify="space-between" class="file" v-for="(item,index) in detailObj.files" :key="index" | ||||
|                   @click.native="open(item)"> | ||||
|             <span>{{ item.fileName }}</span> | ||||
|             <span>{{ (item.size / 1024).toFixed(2) }}KB</span> | ||||
|           </el-row> | ||||
|         </template> | ||||
|       </ai-card> | ||||
| @@ -31,7 +32,7 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   export default { | ||||
| export default { | ||||
|   name: "detail", | ||||
|   props: { | ||||
|     instance: Function, | ||||
| @@ -56,22 +57,22 @@ | ||||
|     }).then(res => { | ||||
|       if (res && res.data) { | ||||
|         this.detailObj = res.data; | ||||
|           this.$initWxOpenData() | ||||
|  | ||||
|       } | ||||
|     }) | ||||
|   } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
|   ::v-deep .title { | ||||
| ::v-deep .title { | ||||
|   .aibar-left { | ||||
|     width: 100%; | ||||
|     text-align: center; | ||||
|   } | ||||
|   } | ||||
| } | ||||
|  | ||||
|   .file { | ||||
| .file { | ||||
|   height: 40px; | ||||
|   line-height: 40px; | ||||
|   padding: 0 8px; | ||||
| @@ -82,13 +83,13 @@ | ||||
|   border: 1px solid #d0d4dc; | ||||
|   margin-bottom: 16px; | ||||
|   cursor: pointer; | ||||
|   } | ||||
| } | ||||
|  | ||||
|   .info { | ||||
| .info { | ||||
|   & > span { | ||||
|     font-size: 14px; | ||||
|     color: #333; | ||||
|   } | ||||
|   } | ||||
| } | ||||
|  | ||||
| </style> | ||||
|   | ||||
| @@ -9,7 +9,7 @@ | ||||
|         <ai-card :title="detailObj.title" class="title"> | ||||
|           <template #content> | ||||
|             <el-row type="flex" justify="space-between" class="info"> | ||||
|               <span>时间:{{detailObj.releaseTime}}</span> | ||||
|               <span>时间:{{ detailObj.releaseTime }}</span> | ||||
|               <span style="display:flex">发布单位: | ||||
|                 <span v-text="detailObj.unitName"/> | ||||
|               </span> | ||||
| @@ -25,7 +25,7 @@ | ||||
|             <span class="Edit" @click="downFileAll"><i class="iconfont iconDownload"></i>下载全部</span> | ||||
|           </template> | ||||
|           <template #content> | ||||
|             <ai-file-list :fileList="detailObj.files" :fileOps="{ name: 'fileName', size: 'size' }" ></ai-file-list> | ||||
|             <ai-file-list :fileList="detailObj.files" :fileOps="{ name: 'fileName', size: 'size' }"></ai-file-list> | ||||
|           </template> | ||||
|         </ai-card> | ||||
|       </template> | ||||
| @@ -43,7 +43,8 @@ | ||||
|               </template> | ||||
|               <template #right> | ||||
|                 <el-input v-model="search.readUserName" @keyup.enter.native="getList()" placeholder="姓名" | ||||
|                           size="small" suffix-icon="iconfont iconSearch" clearable @clear="search.current=1,getList()"></el-input> | ||||
|                           size="small" suffix-icon="iconfont iconSearch" clearable | ||||
|                           @clear="search.current=1,getList()"></el-input> | ||||
|               </template> | ||||
|             </ai-search-bar> | ||||
|             <ai-table | ||||
| @@ -72,12 +73,12 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   export default { | ||||
| export default { | ||||
|   name: "manageDetail", | ||||
|   props: { | ||||
|     instance: Function, | ||||
|     dict: Object, | ||||
|       detail:Object | ||||
|     detail: Object | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
| @@ -95,20 +96,21 @@ | ||||
|     tabTitle() { | ||||
|       return ["公告详情", "查询情况"]; | ||||
|     }, | ||||
|       colConfigs(){ | ||||
|     colConfigs() { | ||||
|       return [ | ||||
|           {slot:"readUserName"}, | ||||
|           {prop:"readUserPhone",label:"手机号",align:"center"}, | ||||
|           {slot:"unitName"}, | ||||
|         {slot: "readUserName"}, | ||||
|         {prop: "readUserPhone", label: "手机号", align: "center"}, | ||||
|         {slot: "unitName"}, | ||||
|         { | ||||
|             prop:"readStatus",label:"查阅状态",align:"center", | ||||
|             render:(h,{row})=>[<span style={{color:this.dict.getColor("announcementReadStatus",row.readStatus)}}>{this.dict.getLabel("announcementReadStatus",row.readStatus)}</span>] | ||||
|           prop: "readStatus", label: "查阅状态", align: "center", | ||||
|           render: (h, {row}) => [<span | ||||
|               style={{color: this.dict.getColor("announcementReadStatus", row.readStatus)}}>{this.dict.getLabel("announcementReadStatus", row.readStatus)}</span>] | ||||
|         }, | ||||
|       ]; | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|       downFileAll () { | ||||
|     downFileAll() { | ||||
|       if (this.detailObj.files.length > 0) { | ||||
|         this.instance.post('/app/appannouncement/downLoadAllFileForDetail', null, { | ||||
|           responseType: 'blob', | ||||
| @@ -117,7 +119,7 @@ | ||||
|           } | ||||
|         }).then((res) => { | ||||
|           const link = document.createElement('a') | ||||
|             let blob = new Blob([res], { type: 'application/octet-stream' }) | ||||
|           let blob = new Blob([res], {type: 'application/octet-stream'}) | ||||
|           link.style.display = 'none' | ||||
|           link.href = URL.createObjectURL(blob) | ||||
|           var num = '' | ||||
| @@ -133,10 +135,10 @@ | ||||
|         this.$message.error('暂无附件提供下载') | ||||
|       } | ||||
|     }, | ||||
|       onChange(val){ | ||||
|         if(val==0){ | ||||
|     onChange(val) { | ||||
|       if (val == 0) { | ||||
|         this.getDetail(); | ||||
|         }else { | ||||
|       } else { | ||||
|         this.getList(); | ||||
|       } | ||||
|     }, | ||||
| @@ -148,7 +150,7 @@ | ||||
|       }).then(res => { | ||||
|         if (res && res.data) { | ||||
|           this.detailObj = res.data; | ||||
|             this.$initWxOpenData() | ||||
|  | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
| @@ -169,18 +171,18 @@ | ||||
|   created() { | ||||
|     this.dict.load("announcementReadStatus").then(this.getDetail); | ||||
|   } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
|   ::v-deep .title { | ||||
| ::v-deep .title { | ||||
|   .aibar-left { | ||||
|     width: 100%; | ||||
|     text-align: center; | ||||
|   } | ||||
|   } | ||||
| } | ||||
|  | ||||
|   .file { | ||||
| .file { | ||||
|   height: 40px; | ||||
|   line-height: 40px; | ||||
|   padding: 0 8px; | ||||
| @@ -191,12 +193,12 @@ | ||||
|   border: 1px solid #d0d4dc; | ||||
|   margin-bottom: 16px; | ||||
|   cursor: pointer; | ||||
|   } | ||||
| } | ||||
|  | ||||
|   .info { | ||||
| .info { | ||||
|   & > span { | ||||
|     font-size: 14px; | ||||
|     color: #333; | ||||
|   } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -94,7 +94,7 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   export default { | ||||
| export default { | ||||
|   name: "noticeManage", | ||||
|   props: { | ||||
|     instance: Function, | ||||
| @@ -113,7 +113,7 @@ | ||||
|       total: 0, | ||||
|       visible: false, | ||||
|       row: {}, | ||||
|         readObj:{}, | ||||
|       readObj: {}, | ||||
|     } | ||||
|   }, | ||||
|  | ||||
| @@ -123,14 +123,17 @@ | ||||
|         {prop: 'title', label: '标题'}, | ||||
|         { | ||||
|           prop: 'readNum', label: '查询状态', align: 'center', | ||||
|             render:(h,{row})=>[<span class='status' onClick={this.showDialog.bind(this,row)}>{row.readNum}人已读,</span>,<span class='status' onClick={this.showDialog.bind(this,row)}>{row.unReadNum}人未读</span>] | ||||
|           render: (h, {row}) => [<span class='status' | ||||
|                                        onClick={this.showDialog.bind(this, row)}>{row.readNum}人已读,</span>, | ||||
|             <span class='status' onClick={this.showDialog.bind(this, row)}>{row.unReadNum}人未读</span>] | ||||
|         }, | ||||
|         {slot: 'releaseUserName'}, | ||||
|         {slot: 'unitName'}, | ||||
|         {prop: 'releaseTime', label: '发布时间', align: 'center'}, | ||||
|         { | ||||
|           prop: 'status', label: '发布状态', align: 'center', | ||||
|             render:(h,{row})=>[<span style={{color:this.dict.getColor("announcementStatus",row.status)}}>{this.dict.getLabel("announcementStatus",row.status)}</span>] | ||||
|           render: (h, {row}) => [<span | ||||
|               style={{color: this.dict.getColor("announcementStatus", row.status)}}>{this.dict.getLabel("announcementStatus", row.status)}</span>] | ||||
|         }, | ||||
|         {slot: 'options'}, | ||||
|       ]; | ||||
| @@ -142,77 +145,77 @@ | ||||
|       this.row = row; | ||||
|       this.getReadList(); | ||||
|     }, | ||||
|       toDetail(row){ | ||||
|     toDetail(row) { | ||||
|       this.$emit('goPage', { | ||||
|         comp: 'manageDetail', | ||||
|         row | ||||
|       }); | ||||
|     }, | ||||
|       toEdit(row){ | ||||
|     toEdit(row) { | ||||
|       this.$emit('goPage', { | ||||
|         comp: 'add', | ||||
|         row | ||||
|       }); | ||||
|     }, | ||||
|       publish(row,status){ | ||||
|         this.$confirm(`是否要${status==0?'发布':'撤回'}该公告?`).then(()=>{ | ||||
|           this.instance.post("/app/appannouncement/update-status",null,{ | ||||
|     publish(row, status) { | ||||
|       this.$confirm(`是否要${status == 0 ? '发布' : '撤回'}该公告?`).then(() => { | ||||
|         this.instance.post("/app/appannouncement/update-status", null, { | ||||
|           params: { | ||||
|               id:row.id | ||||
|             id: row.id | ||||
|           } | ||||
|           }).then(res=>{ | ||||
|             if(res.code==0){ | ||||
|               this.$message.success(status==0?'发布成功':'撤回成功'); | ||||
|         }).then(res => { | ||||
|           if (res.code == 0) { | ||||
|             this.$message.success(status == 0 ? '发布成功' : '撤回成功'); | ||||
|             this.getList(); | ||||
|           } | ||||
|         }) | ||||
|       }) | ||||
|     }, | ||||
|       handleDel(row){ | ||||
|         this.$confirm("是否要删除该公布?").then(()=>{ | ||||
|           this.instance.post("/app/appannouncement/delete",null,{ | ||||
|             params:{ | ||||
|               ids:row.id | ||||
|     handleDel(row) { | ||||
|       this.$confirm("是否要删除该公布?").then(() => { | ||||
|         this.instance.post("/app/appannouncement/delete", null, { | ||||
|           params: { | ||||
|             ids: row.id | ||||
|           } | ||||
|           }).then(res=>{ | ||||
|             if(res.code==0){ | ||||
|         }).then(res => { | ||||
|           if (res.code == 0) { | ||||
|             this.$message.success("删除成功"); | ||||
|             this.getList(); | ||||
|           } | ||||
|         }) | ||||
|       }) | ||||
|     }, | ||||
|       add(){ | ||||
|     add() { | ||||
|       this.$emit('goPage', { | ||||
|         comp: 'add', | ||||
|         row: {}, | ||||
|       }); | ||||
|     }, | ||||
|       getReadList(){ | ||||
|         this.instance.post("/app/appannouncementreader/list-unread",null,{ | ||||
|           params:{ | ||||
|             id:this.row.id | ||||
|     getReadList() { | ||||
|       this.instance.post("/app/appannouncementreader/list-unread", null, { | ||||
|         params: { | ||||
|           id: this.row.id | ||||
|         } | ||||
|         }).then(res=>{ | ||||
|           if(res && res.data){ | ||||
|       }).then(res => { | ||||
|         if (res && res.data) { | ||||
|           this.readObj = res.data; | ||||
|           this.visible = true; | ||||
|             this.$initWxOpenData() | ||||
|  | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     getList() { | ||||
|         this.instance.post("/app/appannouncement/list-mgr",null,{ | ||||
|           params:{ | ||||
|       this.instance.post("/app/appannouncement/list-mgr", null, { | ||||
|         params: { | ||||
|           ...this.search, | ||||
|           startTime: this.date?.length ? this.date[0] : null, | ||||
|           endTime: this.date?.length ? this.date[1] : null, | ||||
|         } | ||||
|         }).then(res=>{ | ||||
|           if(res && res.data){ | ||||
|       }).then(res => { | ||||
|         if (res && res.data) { | ||||
|           this.tableData = res.data.records; | ||||
|           this.total = res.data.total; | ||||
|             this.$initWxOpenData() | ||||
|  | ||||
|         } | ||||
|       }) | ||||
|     } | ||||
| @@ -220,22 +223,22 @@ | ||||
|   created() { | ||||
|     this.dict.load("announcementStatus").then(this.getList) | ||||
|   } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
|   ::v-deep .status { | ||||
| ::v-deep .status { | ||||
|   color: rgba(41, 107, 251, 100); | ||||
|   cursor: pointer; | ||||
|   } | ||||
| } | ||||
|  | ||||
|   header{ | ||||
| header { | ||||
|   font-size: 14px; | ||||
|   color: #333333; | ||||
|   margin-bottom: 10px; | ||||
|   } | ||||
| } | ||||
|  | ||||
|   ::v-deep .wrap { | ||||
| ::v-deep .wrap { | ||||
|   display: flex; | ||||
|   align-items: center; | ||||
|   flex-wrap: wrap; | ||||
| @@ -254,11 +257,11 @@ | ||||
|       border-radius: 50%; | ||||
|     } | ||||
|  | ||||
|       span{ | ||||
|     span { | ||||
|       font-size: 14px; | ||||
|       color: #333333; | ||||
|       text-align: center; | ||||
|     } | ||||
|   } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
| @@ -33,7 +33,7 @@ | ||||
|               <!--              <em v-if="item.readStatus==0"></em>--> | ||||
|               <div class="status" v-if="item.readStatus==0">未读</div> | ||||
|               <div class="status read" v-else>已读</div> | ||||
|               {{item.title}}</label> | ||||
|               {{ item.title }}</label> | ||||
|             <el-row type="flex" justify="space-between" class="row"> | ||||
|               <span style="display:flex"> | ||||
|                 <b>发布人:</b> | ||||
| @@ -45,7 +45,7 @@ | ||||
|               </span> | ||||
|               <span> | ||||
|                 <b>发布日期:</b> | ||||
|                 {{item.releaseTime}}</span> | ||||
|                 {{ item.releaseTime }}</span> | ||||
|             </el-row> | ||||
|           </li> | ||||
|         </ul> | ||||
| @@ -62,7 +62,7 @@ | ||||
|             layout="slot,->,prev, pager, next,sizes,jumper" | ||||
|             :total="total"> | ||||
|           <div class="page" style="text-align: left">共 | ||||
|             <em>{{total}}</em> | ||||
|             <em>{{ total }}</em> | ||||
|             条记录 | ||||
|           </div> | ||||
|         </el-pagination> | ||||
| @@ -72,7 +72,7 @@ | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
|   export default { | ||||
| export default { | ||||
|   name: "recentNotice", | ||||
|   props: { | ||||
|     instance: Function, | ||||
| @@ -112,7 +112,7 @@ | ||||
|         if (res && res.data) { | ||||
|           this.tableData = res.data.records; | ||||
|           this.total = res.data.total; | ||||
|             this.$initWxOpenData() | ||||
|  | ||||
|         } | ||||
|       }); | ||||
|     }, | ||||
| @@ -128,11 +128,11 @@ | ||||
|   created() { | ||||
|     this.dict.load("announcementReadStatus").then(_ => this.getList()) | ||||
|   } | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="scss" scoped> | ||||
|   .body { | ||||
| .body { | ||||
|  | ||||
|   ul { | ||||
|     overflow: hidden; | ||||
| @@ -172,7 +172,7 @@ | ||||
|           margin-right: 4px; | ||||
|         } | ||||
|  | ||||
|           .read{ | ||||
|         .read { | ||||
|           background: #EEEEEE; | ||||
|           color: #999999; | ||||
|         } | ||||
| @@ -203,9 +203,9 @@ | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   } | ||||
| } | ||||
|  | ||||
|   ::v-deep .page { | ||||
| ::v-deep .page { | ||||
|   font-size: 12px; | ||||
|   color: #555555; | ||||
|  | ||||
| @@ -213,5 +213,5 @@ | ||||
|     font-style: normal; | ||||
|     color: rgb(34, 102, 255); | ||||
|   } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user