notificationDetail.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <template>
  2. <view v-if="!showFlag">
  3. <u-cell-group :border="false">
  4. <u-cell :border="false">
  5. <u--text slot="title" :text="`标题:${notication.title}`" ></u--text>
  6. </u-cell>
  7. <u-cell :border="false">
  8. <u--text slot="title" type="info" :text="`发布者:${notication.createBy.name},类型:${$dictUtils.getDictLabel('oa_notify_type', notication.type ,'')}`"></u--text>
  9. </u-cell>
  10. <u-cell>
  11. <u--text slot="title" type="info" :text="`发布时间: ${notication.createTime}`"></u--text>
  12. </u-cell>
  13. </u-cell-group>
  14. <view class="padding bg-white">
  15. <u-parse :content="notication.content"></u-parse>
  16. </view>
  17. </view>
  18. <view v-else-if="showFlag">
  19. <!-- First Section: 巡视工单 to 联系方式 -->
  20. <view class="form-section">
  21. <u--form :model="inputForm" labelWidth="100px" class="u-form" labelPosition="left" :rules="rules" ref="inputForm" v-if="!nodeFlag">
  22. <u-form-item label="巡视工单" prop="no">
  23. <u--input v-model="inputForm.no" :disabled="true" placeholder="工单编号" clearable></u--input>
  24. </u-form-item>
  25. <u-form-item label="处理单位" borderBottom prop="processingUnit" :required="true" v-if="!disFlag">
  26. <jp-picker v-model="inputForm.processingUnit" rangeKey="label" rangeValue="value" :range="processingUnits" @input="getUserInfoByOffId"></jp-picker>
  27. </u-form-item>
  28. <u-form-item label="处理单位" borderBottom prop="processingUnitName" :required="true" v-else-if="disFlag">
  29. <u--input v-model="inputForm.processingUnitName" :disabled="true" placeholder="处理单位" clearable></u--input>
  30. </u-form-item>
  31. <u-form-item label="清运专员" prop="clearUserName">
  32. <u--input v-model="inputForm.clearUserName" :disabled="true" placeholder="清运专员" clearable></u--input>
  33. </u-form-item>
  34. <u-form-item label="联系方式" prop="clearUserMobile">
  35. <u--input v-model="inputForm.clearUserMobile" :disabled="true" placeholder="联系方式" clearable></u--input>
  36. </u-form-item>
  37. </u--form>
  38. </view>
  39. <!-- Second Section: 上传图片 -->
  40. <view class="form-section">
  41. <text class="u-demo-block__title">现场照片</text>
  42. <view class="u-page__upload-item">
  43. <u-upload
  44. :disabled="true"
  45. :fileList="fileList1"
  46. name="1"
  47. multiple
  48. :maxCount="10"
  49. ></u-upload>
  50. </view>
  51. </view>
  52. <!-- Third Section: 备注 -->
  53. <view class="form-section">
  54. <u--form :model="inputForm" labelWidth="100px" class="u-form" labelPosition="left" :rules="rules" ref="inputForm" v-if="!nodeFlag">
  55. <u-form-item label="备注" borderBottom prop="remarks">
  56. <u--textarea placeholder='请填写备注' :maxlength="500" v-model="inputForm.remarks" :disabled="true"></u--textarea>
  57. </u-form-item>
  58. </u--form>
  59. </view>
  60. </view>
  61. </template>
  62. <script>
  63. import overService from '@/api/garbageClearance/overService'
  64. import notifyService from "@/api/notify/notifyService";
  65. export default {
  66. data() {
  67. return {
  68. disFlag: true, // 启用动态获取处理单位则设置为false
  69. processingUnits: [],
  70. fileList1: [],
  71. nodeFlag: false,
  72. inputForm: {
  73. no: '',
  74. processingUnit: '',
  75. processingUnitName: '',
  76. clearUserId: '',
  77. clearUserName: '',
  78. clearUserMobile: '',
  79. remarks: '',
  80. },
  81. rules: {
  82. 'processingUnit': [
  83. {
  84. required: true,
  85. message: '处理单位不能为空',
  86. trigger: ['blur', 'change']
  87. }
  88. ],
  89. },
  90. showFlag: false,
  91. notication: {
  92. title: '',
  93. createTime: '',
  94. createBy: {
  95. name: ''
  96. }
  97. }
  98. }
  99. },
  100. onLoad (option) {
  101. notifyService.query({isSelf:true, id:option.id}).then(async (data)=>{
  102. if (data.lookOverId) {
  103. this.showFlag = true;
  104. }
  105. // 获取巡视工单信息
  106. await overService.queryById(data.lookOverId).then((data) => {
  107. data.no = 'XS-J' + data.no;
  108. this.fileList1 = data.fileList1
  109. this.inputForm = this.recover(this.inputForm, data)
  110. })
  111. this.notication = data
  112. });
  113. },
  114. onBackPress(option) {
  115. const pages = getCurrentPages();
  116. if (pages.length > 1) {
  117. const previousPage = pages[pages.length - 2]; // 获取上一个页面
  118. // 检查上一个页面的实例或路由
  119. if (previousPage.route === 'pages/index/index') {
  120. // 如果上一个页面的路由是 'pages/a/a',调用它的方法
  121. if (typeof previousPage.NavChange === 'function') {
  122. const customParam = { currentTarget: { dataset: { cur: 'message' } } }; // 模拟事件对象 刷新消息通知页面
  123. previousPage.NavChange(customParam); // 调用上一个页面的 findList 方法
  124. }
  125. }
  126. }
  127. }
  128. }
  129. </script>
  130. <style>
  131. .form-section {
  132. padding: 10px 15px;
  133. margin-bottom: 10px;
  134. background-color: #ffffff;
  135. border-radius: 5px;
  136. box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  137. }
  138. .u-page__upload-item {
  139. margin-top: 10px;
  140. }
  141. .button-container {
  142. margin-top: 20px;
  143. text-align: center;
  144. }
  145. .cu-form-group .title {
  146. min-width: 100px;
  147. }
  148. </style>