Commit 61009cfc74119047aa3169d20989698e765b924b

Authored by monkeyhouyi
1 parent 1ba4f6e3

2024/8/8

src/components/CompanyForm/index.vue
... ... @@ -14,7 +14,7 @@
14 14 width="60%"
15 15 top="15vh"
16 16 :modal-append-to-body="false"
17   - class="NCC-dialog company-dialog"
  17 + class="NCC-dialog NCC-dialog_center company-dialog"
18 18 >
19 19 <el-form ref="elForm" :model="dataForm" size="small" label-width="100px" label-position="right"
20 20 :rules="rules" v-lodding="loading">
... ...
src/components/InfoEditRecord/index.vue
... ... @@ -12,7 +12,7 @@
12 12 width="80%"
13 13 top="10vh"
14 14 :modal-append-to-body="false"
15   - class="NCC-dialog dialog-box"
  15 + class="NCC-dialog NCC-dialog_center dialog-box"
16 16 destroy-on-close
17 17 >
18 18 <el-row :gutter="20">
... ...
src/components/InfoForm/index.vue
... ... @@ -12,7 +12,7 @@
12 12 width="80%"
13 13 top="10vh"
14 14 :modal-append-to-body="false"
15   - class="NCC-dialog dialog-box"
  15 + class="NCC-dialog NCC-dialog_center dialog-box"
16 16 destroy-on-close
17 17 >
18 18 <el-form
... ...
src/components/PasswordForm/index.vue
... ... @@ -11,7 +11,7 @@
11 11 append-to-body
12 12 width="600px"
13 13 :modal-append-to-body="false"
14   - class="NCC-dialog dialog-box"
  14 + class="NCC-dialog NCC-dialog_center dialog-box"
15 15 destroy-on-close
16 16 >
17 17 <el-form ref="form" :model="user" :rules="rules" label-width="80px">
... ...
src/utils/ncc.js
... ... @@ -233,6 +233,21 @@ const ncc = {
233 233 return 'primary'
234 234 }
235 235 },
  236 + stateDeadLine(time){
  237 + let date = (new Date()).getTime();
  238 + let timeDiff = time - date;
  239 +
  240 + if(timeDiff < 0) {
  241 + // 超时
  242 + return `(已超时)`
  243 + } else if(timeDiff / (1000 * 60 * 60 * 24) < 3) {
  244 + // 小于三天警告即将超时
  245 + return `(即将超时)`
  246 + } else {
  247 + // 未超时
  248 + return ''
  249 + }
  250 + },
236 251 storageSet(obj) {
237 252 for (let i in obj) {
238 253 cacheItem(i, obj[i])
... ...
src/views/DisposalSuggestions/Form.vue
... ... @@ -86,7 +86,7 @@
86 86 label-width="100px"
87 87 label-position="right"
88 88 >
89   - <el-col :span="24">
  89 + <!-- <el-col :span="24">
90 90 <el-form-item
91 91 :label="isSHILevel ? '处置要求' : '处置建议'"
92 92 prop="disposalSuggestions"
... ... @@ -102,7 +102,7 @@
102 102 >
103 103 </el-input>
104 104 </el-form-item>
105   - </el-col>
  105 + </el-col> -->
106 106 <!-- <el-col :span="24">
107 107 <el-form-item label="截止时间" prop="deadline">
108 108 <el-date-picker
... ... @@ -195,6 +195,9 @@ export default {
195 195 judgmentClass: [
196 196 { required: true, message: "请选择审核类型", trigger: "change" },
197 197 ],
  198 + judgmentOpinions: [
  199 + { required: true, message: "请填写研判意见", trigger: "bulr" }
  200 + ]
198 201 },
199 202 showSuggsetion: false,
200 203 judgmentClassOption: [],
... ...
src/views/baseCaseHandling/Form.vue
1 1 <template>
2   - <div>
3   - <el-row :gutter="15">
4   - <el-form ref="elForm" :model="dataForm" :rules="rules" size="small" label-width="125px" label-position="right" :disabled="setting.readonly">
5   - <el-col :span="24" v-if="false" >
6   - <el-form-item label="主键" prop="id">
7   - <el-input v-model="dataForm.id" placeholder="请输入" clearable :disabled="judgeWrite('id')" :style='{"width":"100%"}' >
8   - </el-input>
9   - </el-form-item>
10   - </el-col>
11   - <el-col :span="24" v-if="judgeShow('registrationTime')">
12   - <el-form-item label="登记时间" prop="registrationTime">
13   - <el-date-picker v-model="dataForm.registrationTime" placeholder="请选择" clearable :disabled="judgeWrite('registrationTime')" :style='{"width":"100%"}' type='datetime' format="yyyy-MM-dd HH:mm:ss" value-format="timestamp" >
14   - </el-date-picker>
15   - </el-form-item>
16   - </el-col>
17   - <el-col :span="24" v-if="judgeShow('number')">
18   - <el-form-item label="文号" prop="number">
19   - <el-input v-model="dataForm.number" placeholder="请输入" clearable :disabled="judgeWrite('number')" :style='{"width":"100%"}' >
20   - </el-input>
21   - </el-form-item>
22   - </el-col>
23   - <el-col :span="24" v-if="judgeShow('systemName')">
24   - <el-form-item label="网站/APP名称" prop="systemName">
25   - <el-input v-model="dataForm.systemName" placeholder="请输入" clearable :disabled="judgeWrite('systemName')" :style='{"width":"100%"}' >
26   - </el-input>
27   - </el-form-item>
28   - </el-col>
29   - <el-col :span="24" v-if="judgeShow('registeredEntity')">
30   - <el-form-item label="注册主体" prop="registeredEntity">
31   - <el-input v-model="dataForm.registeredEntity" placeholder="请输入" clearable :disabled="judgeWrite('registeredEntity')" :style='{"width":"100%"}' >
32   - </el-input>
33   - </el-form-item>
34   - </el-col>
35   - <el-col :span="24" v-if="judgeShow('category')">
36   - <el-form-item label="类别" prop="category">
37   - <el-select v-model="dataForm.category" placeholder="请选择" clearable :disabled="judgeWrite('category')" :style='{"width":"100%"}' >
38   - <el-option v-for="(item, index) in categoryOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option>
39   - </el-select>
40   - </el-form-item>
41   - </el-col>
42   - <el-col :span="24" v-if="judgeShow('recordNumber')">
43   - <el-form-item label="备案号" prop="recordNumber">
44   - <el-input v-model="dataForm.recordNumber" placeholder="请输入" clearable :disabled="judgeWrite('recordNumber')" :style='{"width":"100%"}' >
45   - </el-input>
46   - </el-form-item>
47   - </el-col>
48   - <el-col :span="24" v-if="judgeShow('districtCounty')">
49   - <el-form-item label="所属区(市)县" prop="districtCounty">
50   - <NCC-Address v-model="dataForm.districtCounty" placeholder="请选择" clearable :disabled="judgeWrite('districtCounty')" :level="2" >
51   - </NCC-Address>
52   - </el-form-item>
53   - </el-col>
54   - <el-col :span="24" v-if="judgeShow('illegalReasons')">
55   - <el-form-item label="违法原因" prop="illegalReasons">
56   - <el-input v-model="dataForm.illegalReasons" placeholder="请输入" clearable :disabled="judgeWrite('illegalReasons')" :style='{"width":"100%"}' >
57   - </el-input>
58   - </el-form-item>
59   - </el-col>
60   - <el-col :span="24" v-if="judgeShow('punishmentRequirements')">
61   - <el-form-item label="处罚要求" prop="punishmentRequirements">
62   - <el-input v-model="dataForm.punishmentRequirements" placeholder="请输入" clearable :disabled="judgeWrite('punishmentRequirements')" :style='{"width":"100%"}' >
63   - </el-input>
64   - </el-form-item>
65   - </el-col>
66   - <el-col :span="24" v-if="judgeShow('punishmentContent')">
67   - <el-form-item label="处罚内容" prop="punishmentContent">
68   - <el-input v-model="dataForm.punishmentContent" placeholder="请输入" :disabled="judgeWrite('punishmentContent')" show-word-limit :style='{"width":"100%"}' type='textarea' :autosize='{"minRows":4,"maxRows":4}' >
69   - </el-input>
70   - </el-form-item>
71   - </el-col>
72   - <el-col :span="24" v-if="judgeShow('state')">
73   - <el-form-item label="状态" prop="state">
74   - <el-select v-model="dataForm.state" placeholder="请选择" clearable :disabled="judgeWrite('state')" :style='{"width":"100%"}' >
75   - <el-option v-for="(item, index) in stateOptions" :key="index" :label="item.fullName" :value="item.id" ></el-option>
76   - </el-select>
77   - </el-form-item>
78   - </el-col>
79   - <el-col :span="24" v-if="judgeShow('record')">
80   - <el-form-item label="笔录" prop="record">
81   - <NCC-UploadFz v-model="dataForm.record" :disabled="judgeWrite('record')" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" >
82   - </NCC-UploadFz>
83   - </el-form-item>
84   - </el-col>
85   - <el-col :span="24" v-if="judgeShow('caseHandlingOpinions')">
86   - <el-form-item label="案件处理意见" prop="caseHandlingOpinions">
87   - <NCC-UploadFz v-model="dataForm.caseHandlingOpinions" :disabled="judgeWrite('caseHandlingOpinions')" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" >
88   - </NCC-UploadFz>
89   - </el-form-item>
90   - </el-col>
91   - <el-col :span="24" v-if="judgeShow('enforcementRecords')">
92   - <el-form-item label="执法记录" prop="enforcementRecords">
93   - <NCC-UploadFz v-model="dataForm.enforcementRecords" :disabled="judgeWrite('enforcementRecords')" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" >
94   - </NCC-UploadFz>
95   - </el-form-item>
96   - </el-col>
97   - <el-col :span="24" v-if="judgeShow('noticeLetter')">
98   - <el-form-item label="行政处罚意见告知" prop="noticeLetter">
99   - <NCC-UploadFz v-model="dataForm.noticeLetter" :disabled="judgeWrite('noticeLetter')" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" >
100   - </NCC-UploadFz>
101   - </el-form-item>
102   - </el-col>
103   - <el-col :span="24" v-if="judgeShow('punishmentDecision')">
104   - <el-form-item label="行政处罚决定" prop="punishmentDecision">
105   - <NCC-UploadFz v-model="dataForm.punishmentDecision" :disabled="judgeWrite('punishmentDecision')" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" >
106   - </NCC-UploadFz>
107   - </el-form-item>
108   - </el-col>
109   - <el-col :span="24" v-if="judgeShow('closingReport')">
110   - <el-form-item label="行政处罚结案报告" prop="closingReport">
111   - <NCC-UploadFz v-model="dataForm.closingReport" :disabled="judgeWrite('closingReport')" :fileSize="5" sizeUnit="MB" :limit="9" buttonText="点击上传" >
112   - </NCC-UploadFz>
113   - </el-form-item>
114   - </el-col>
115   - <el-col :span="24" v-if="false" >
116   - <el-form-item label="工作流ID" prop="taskId">
117   - <el-input v-model="dataForm.taskId" placeholder="请输入" clearable :disabled="judgeWrite('taskId')" :style='{"width":"100%"}' >
118   - </el-input>
119   - </el-form-item>
120   - </el-col>
121   - <el-col :span="24" v-if="false" >
122   - <el-form-item label="创建用户" prop="creatorUserId">
123   - <el-input v-model="dataForm.creatorUserId" placeholder="系统自动生成" readonly :disabled="judgeWrite('creatorUserId')" >
124   - </el-input>
125   - </el-form-item>
126   - </el-col>
127   - <el-col :span="24" v-if="false" >
128   - <el-form-item label="创建时间" prop="creatorTime">
129   - <el-input v-model="dataForm.creatorTime" placeholder="系统自动生成" readonly :disabled="judgeWrite('creatorTime')" >
130   - </el-input>
131   - </el-form-item>
132   - </el-col>
133   - <el-col :span="24" v-if="false" >
134   - <el-form-item label="修改用户" prop="lastModifyUserId">
135   - <el-input v-model="dataForm.lastModifyUserId" placeholder="系统自动生成" readonly :disabled="judgeWrite('lastModifyUserId')" >
136   - </el-input>
137   - </el-form-item>
138   - </el-col>
139   - <el-col :span="24" v-if="false" >
140   - <el-form-item label="修改时间" prop="lastModifyTime">
141   - <el-input v-model="dataForm.lastModifyTime" placeholder="系统自动生成" readonly :disabled="judgeWrite('lastModifyTime')" >
142   - </el-input>
143   - </el-form-item>
144   - </el-col>
145   - </el-form>
146   - </el-row>
147   - <UserBox v-if="userBoxVisible" ref="userBox" @submit="submit" />
148   - </div>
  2 + <el-dialog
  3 + :title="!dataForm.id ? '新建' : isDetail ? '详情' : '编辑'"
  4 + :close-on-click-modal="false"
  5 + :visible.sync="visible"
  6 + class="NCC-dialog NCC-dialog_center"
  7 + lock-scroll
  8 + width="50%"
  9 + v-loading="loading"
  10 + >
  11 + <el-row :gutter="15">
  12 + <el-form
  13 + ref="elForm"
  14 + :model="dataForm"
  15 + size="small"
  16 + label-width="110px"
  17 + label-position="right"
  18 + :disabled="!!isDetail"
  19 + :rules="rules"
  20 + >
  21 + <el-col :span="24" v-if="false">
  22 + <el-form-item label="主键" prop="id">
  23 + <el-input v-model="dataForm.id" placeholder="请输入" clearable />
  24 + </el-form-item>
  25 + </el-col>
  26 + <el-col :span="24">
  27 + <el-form-item label="系统名称" prop="systemName">
  28 + <el-select
  29 + v-model="dataForm.systemName"
  30 + filterable
  31 + remote
  32 + reserve-keyword
  33 + placeholder="请输入关键词"
  34 + :remote-method="getSystemSelect"
  35 + @change="systemChange"
  36 + :loading="system_loading">
  37 + <el-option
  38 + v-for="item in systemOption"
  39 + :key="item.value"
  40 + :label="item.systemName"
  41 + :value="item.id">
  42 + </el-option>
  43 + </el-select>
  44 + </el-form-item>
  45 + </el-col>
  46 + <el-col :span="24">
  47 + <el-form-item label="注册主体" prop="registeredEntity">
  48 + <el-input v-model="dataForm.registeredEntity" placeholder="选择系统自动带出" clearable disabled/>
  49 + </el-form-item>
  50 + </el-col>
  51 + <el-col :span="24">
  52 + <el-form-item label="系统类别" prop="category">
  53 + <el-input v-model="dataForm.category" placeholder="选择系统自动带出" clearable disabled/>
  54 + </el-form-item>
  55 + </el-col>
  56 + <el-col :span="24">
  57 + <el-form-item label="备案号" prop="recordNumber">
  58 + <el-input v-model="dataForm.recordNumber" placeholder="选择系统自动带出" clearable disabled/>
  59 + </el-form-item>
  60 + </el-col>
  61 + <el-col :span="24">
  62 + <el-form-item label="所属区县" prop="districtCounty">
  63 + <el-radio-group
  64 + v-model="dataForm.districtCounty"
  65 + placeholder="请选择所属区县"
  66 + style="line-height: 22px"
  67 + >
  68 + <el-radio v-for="v in areaOptions" :key="v.id" :label="v.id">{{
  69 + v.fullName
  70 + }}</el-radio>
  71 + </el-radio-group>
  72 + </el-form-item>
  73 + </el-col>
  74 + <el-col :span="24">
  75 + <el-form-item label="违法原因" prop="illegalReasons">
  76 + <el-input type="textarea" v-model="dataForm.illegalReasons" placeholder="请输入违法原因" clearable maxlength="200"/>
  77 + </el-form-item>
  78 + </el-col>
  79 + <el-col :span="24">
  80 + <el-form-item label="处罚要求" prop="punishmentRequirements">
  81 + <el-input type="textarea" v-model="dataForm.punishmentRequirements" placeholder="请输入处罚要求" clearable maxlength="200"/>
  82 + </el-form-item>
  83 + </el-col>
  84 + <el-col :span="24">
  85 + <el-form-item label="处罚内容" prop="punishmentContent">
  86 + <el-input type="textarea" v-model="dataForm.punishmentContent" placeholder="请输入处罚内容" clearable maxlength="200"/>
  87 + </el-form-item>
  88 + </el-col>
  89 + </el-form>
  90 + </el-row>
  91 +
  92 + <span slot="footer" class="dialog-footer">
  93 + <el-button @click="visible = false">取 消</el-button>
  94 + <el-button type="primary" v-if="!isDetail" @click="submit(1)">{{isSHILevel ? '下 发' : '上 报'}}</el-button>
  95 + <el-button type="info" v-if="!isDetail" @click="submit(0)">保 存</el-button>
  96 + </span>
  97 + </el-dialog>
149 98 </template>
150 99 <script>
151   - import request from '@/utils/request'
152   - import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
153   - import { previewDataInterface } from '@/api/systemData/dataInterface'
154   - export default {
155   - data(){
156   - return {
157   - visible: false,
158   - setting:{},
159   - eventType: '',
160   - userBoxVisible:false,
161   - dataForm: {
162   - id:'',
163   - id:undefined,
164   - registrationTime:undefined,
165   - number:undefined,
166   - systemName:undefined,
167   - registeredEntity:undefined,
168   - category:undefined,
169   - recordNumber:undefined,
170   - districtCounty:[],
171   - illegalReasons:undefined,
172   - punishmentRequirements:undefined,
173   - punishmentContent:undefined,
174   - state:undefined,
175   - record:[],
176   - caseHandlingOpinions:[],
177   - enforcementRecords:[],
178   - noticeLetter:[],
179   - punishmentDecision:[],
180   - closingReport:[],
181   - taskId:undefined,
182   - creatorUserId:undefined,
183   - creatorTime:undefined,
184   - lastModifyUserId:undefined,
185   - lastModifyTime:undefined,
186   - },
187   - rules: {
188   - },
189   - categoryOptions:[{"fullName":"选项一","id":"选项一"},{"fullName":"","id":"选项二"}],
190   - stateOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
191   - }
192   - },
193   - computed: {},
194   - watch: {},
195   - created() {
196   - },
197   - mounted() {},
198   - methods: {
199   - goBack() {
200   - this.$emit('refresh')
201   - },
202   - init(data) {
203   - this.dataForm.id = data.id || 0;
204   - this.loading = true
205   - this.setting = data
206   - this.visible = true;
207   - this.$nextTick(() => {
208   - this.$refs['elForm'].resetFields();
209   - if (this.dataForm.id) {
210   - request({
211   - url: '/Extend/BaseCaseHandling/' + this.dataForm.id,
212   - method: 'get'
213   - }).then(res =>{
214   - this.dataForm = res.data;
215   - if(!this.dataForm.districtCounty)this.dataForm.districtCounty=[];
216   - if(!this.dataForm.record)this.dataForm.record=[];
217   - if(!this.dataForm.caseHandlingOpinions)this.dataForm.caseHandlingOpinions=[];
218   - if(!this.dataForm.enforcementRecords)this.dataForm.enforcementRecords=[];
219   - if(!this.dataForm.noticeLetter)this.dataForm.noticeLetter=[];
220   - if(!this.dataForm.punishmentDecision)this.dataForm.punishmentDecision=[];
221   - if(!this.dataForm.closingReport)this.dataForm.closingReport=[];
222   - })
223   - }
224   - else{
225   - this.dataForm.flowId = data.flowId
226   - }
227   - this.loading = false
228   - this.$emit('setPageLoad')
229   - })
230   - },
231   - dataFormSubmit(eventType) {
232   - this.$refs['elForm'].validate((valid) => {
233   - if (valid) {
234   - if (eventType === 'audit' || eventType === 'reject') {
235   - this.$emit('eventReciver', this.dataForm, eventType)
236   - return
237   - }
238   - this.dataForm.flowState = eventType === 'submit' ? 0 : 1
239   - this.eventType = eventType
240   - if (this.eventType === 'submit') {
241   - this.$confirm('您确定要提交当前流程吗, 是否继续?', '提示', {
242   - type: 'warning'
243   - }).then(() => {
244   - this.request()
245   - }).catch(() => { });
246   - } else {
247   - this.request()
248   - }
249   - }
250   - })
251   - },
252   - request() {
253   - if (!this.dataForm.id) {
254   - delete (this.dataForm.id)
255   - request({
256   - url: '/Extend/BaseCaseHandling',
257   - method: 'post',
258   - data: this.dataForm
259   - }).then((res) => {
260   - this.$message({
261   - message: res.msg,
262   - type: 'success',
263   - duration: 1000,
264   - onClose: () => {
265   - this.visible = false
266   - this.$emit('close', true)
267   - }
268   - })
269   - })
270   - }else{
271   - request({
272   - url: '/Extend/BaseCaseHandling/' + this.dataForm.id,
273   - method: 'PUT',
274   - data: this.dataForm
275   - }).then((res) => {
276   - this.$message({
277   - message: res.msg,
278   - type: 'success',
279   - duration: 1000,
280   - onClose: () => {
281   - this.visible = false
282   - this.$emit('close', true)
283   - }
284   - })
285   - })
286   - }
287   - },
288   - judgeShow(id) {
289   - if (!this.setting.formOperates || !this.setting.formOperates.length) return true
290   - let arr = this.setting.formOperates.filter(o => o.id === id) || []
291   - if (!arr.length) return true
292   - let item = arr[0]
293   - return item.read
294   - },
295   - judgeWrite(id) {
296   - if (!this.setting.formOperates || !this.setting.formOperates.length) return false
297   - let arr = this.setting.formOperates.filter(o => o.id === id) || []
298   - if (!arr.length) return true
299   - let item = arr[0]
300   - return !item.write
301   - },
302   - }
303   - }
304   -</script>
  100 +import infoMixin from "@/mixins/info";
  101 +import request from "@/utils/request";
  102 +import { getSystemDetail } from "@/api/baseData/info";
  103 +import { dynamicTextUP } from "@/filters/index";
305 104  
  105 +export default {
  106 + mixins: [infoMixin],
  107 + data() {
  108 + return {
  109 + visible: false,
  110 + loading: false,
  111 + isDetail: false,
  112 + dataForm: {
  113 + id: undefined,
  114 + registrationTime: undefined,
  115 + systemName: undefined,
  116 + registeredEntity: undefined,
  117 + category: undefined,
  118 + recordNumber: undefined,
  119 + districtCounty: undefined,
  120 + illegalReasons: undefined,
  121 + punishmentRequirements: undefined,
  122 + punishmentContent: undefined,
  123 + state: undefined,
  124 + record: undefined,
  125 + caseHandlingOpinions: undefined,
  126 + enforcementRecords: undefined,
  127 + noticeLetter: undefined,
  128 + punishmentDecision: undefined,
  129 + closingReport: undefined,
  130 + },
  131 + rules: {
  132 + systemName: [
  133 + { required: true, message: "请选择系统名称", trigger: "change" }
  134 + ],
  135 + districtCounty: [
  136 + { required: true, message: "请选择所属区域", trigger: "change" }
  137 + ],
  138 + },
  139 + systemOption: [],
  140 + system_loading: false,
  141 + areaOptions: [],
  142 + };
  143 + },
  144 + computed: {
  145 + isSHILevel() {
  146 + // 判断角色是否为‘市级办公室’
  147 + return this.$store.state.user.islader;
  148 + },
  149 + },
  150 + watch: {},
  151 + created() {
  152 + this.getSystemSelect();
  153 + this.initSystemTypeList();
  154 + this.initAreaTypeList();
  155 + },
  156 + mounted() {},
  157 + methods: {
  158 + // 获取系统列表
  159 + getSystemSelect(val) {
  160 + let query = {
  161 + SystemName: val || "",
  162 + };
  163 + this.system_loading = true;
  164 + request({
  165 + url: "/Extend/basesysteminfo/GetNoPagingList",
  166 + method: "get",
  167 + params: query,
  168 + }).then(({data}) => {
  169 + this.systemOption = data;
  170 + this.system_loading = false;
  171 + })
  172 + },
  173 + // 系统名称改变
  174 + systemChange(val) {
  175 + getSystemDetail(val).then(({data}) => {
  176 + this.dataForm.registeredEntity = data.companyId;
  177 + this.dataForm.category = dynamicTextUP(data.systemType, this.systemTypeOptions);
  178 + this.dataForm.recordNumber = data.specialRecordNumber || '--';
  179 + this.dataForm.districtCounty = data.areaId;
  180 + })
  181 + },
  182 + goBack() {
  183 + this.$emit("refresh");
  184 + },
  185 + init(id, isDetail) {
  186 + this.dataForm.id = id || 0;
  187 + this.isDetail = isDetail || false;
  188 + // this.loading = true;
  189 + this.visible = true;
  190 + this.$nextTick(() => {
  191 + this.$refs["elForm"].resetFields();
  192 + if (this.dataForm.id) {
  193 + request({
  194 + url: `/Extend/BaseCaseHandling/${this.dataForm.id}`,
  195 + method: "GET",
  196 + }).then((res) => {
  197 + this.dataForm = res.data;
  198 + // this.loading = false;
  199 + });
  200 + }
  201 + });
  202 + },
  203 + // 提交
  204 + submit(type) {
  205 + // type: 1 上报 0 保存
  206 + let obj = {
  207 + ...this.dataForm,
  208 + isReport: type,
  209 + }
  210 + this.$refs['elForm'].validate((valid) => {
  211 + if(!type || valid) {
  212 + request({
  213 + url: `/Extend/BaseCaseHandling`,
  214 + method: "POST",
  215 + data: obj,
  216 + }).then((res) => {
  217 + this.$message({
  218 + type: "success",
  219 + message: res.msg,
  220 + onClose: () => {
  221 + this.visible = false;
  222 + this.$emit("refresh", true);
  223 + },
  224 + });
  225 + });
  226 + }
  227 + })
  228 + }
  229 + },
  230 +};
  231 +</script>
... ...
src/views/baseCaseHandling/index.vue
... ... @@ -10,7 +10,7 @@
10 10 <el-form-item label="">
11 11 <el-input
12 12 v-model="query.number"
13   - placeholder="号"
  13 + placeholder="档案号"
14 14 clearable
15 15 />
16 16 </el-form-item>
... ... @@ -82,61 +82,23 @@
82 82 :data="list"
83 83 @sort-change="sortChange"
84 84 >
85   - <el-table-column prop="id" label="主键" align="left" />
86   - <el-table-column
87   - prop="registrationTime"
88   - label="登记时间"
89   - align="left"
90   - />
91   - <el-table-column prop="number" label="文号" align="left" />
92   - <el-table-column
93   - prop="systemName"
94   - label="网站/APP名称"
95   - align="left"
96   - width="150"
97   - />
98   - <el-table-column
99   - prop="registeredEntity"
100   - label="注册主体"
101   - align="left"
102   - />
  85 + <!-- <el-table-column prop="id" label="主键" align="left" show-overflow-tooltip/> -->
  86 + <el-table-column prop="number" label="档案号" align="left" show-overflow-tooltip/>
  87 + <el-table-column prop="registrationTime" label="登记时间" :formatter="ncc.tableDateFormat" align="left" show-overflow-tooltip/>
  88 + <el-table-column prop="systemName" label="网站/APP名称" align="left" width="150" show-overflow-tooltip/>
  89 + <el-table-column prop="registeredEntity" label="注册主体" align="left" show-overflow-tooltip/>
103 90 <el-table-column label="类别" prop="category" align="left">
104   - <template slot-scope="scope">{{
105   - scope.row.category | dynamicText(categoryOptions)
106   - }}</template>
  91 + <template slot-scope="scope">{{ scope.row.category | dynamicText(categoryOptions) }}</template>
107 92 </el-table-column>
108   - <el-table-column
109   - prop="recordNumber"
110   - label="备案号"
111   - align="left"
112   - />
113   - <el-table-column
114   - prop="districtCounty"
115   - label="所属区(市)县"
116   - align="left"
117   - width="150"
118   - />
119   - <el-table-column
120   - prop="illegalReasons"
121   - label="违法原因"
122   - align="left"
123   - />
124   - <el-table-column
125   - prop="punishmentRequirements"
126   - label="处罚要求"
127   - align="left"
128   - />
129   - <el-table-column
130   - prop="punishmentContent"
131   - label="处罚内容"
132   - align="left"
133   - />
134   - <el-table-column label="状态" prop="state" align="left">
135   - <template slot-scope="scope">{{
136   - scope.row.state | dynamicText(stateOptions)
137   - }}</template>
  93 + <el-table-column prop="recordNumber" label="备案号" align="left" show-overflow-tooltip/>
  94 + <el-table-column prop="districtCounty" label="所属区(市)县" align="left" width="150">
  95 + <template slot-scope="scope">{{ scope.row.districtCounty | dynamicText(areaOptions) }}</template>
138 96 </el-table-column>
139   - <el-table-column prop="flowState" label="状态" width="100">
  97 + <el-table-column prop="illegalReasons" label="违法原因" align="left" show-overflow-tooltip/>
  98 + <el-table-column prop="punishmentRequirements" label="处罚要求" align="left" show-overflow-tooltip/>
  99 + <el-table-column prop="punishmentContent" label="处罚内容" align="left" show-overflow-tooltip/>
  100 + <el-table-column label="状态" prop="state" align="left" />
  101 + <!-- <el-table-column prop="flowState" label="状态" width="100">
140 102 <template slot-scope="scope">
141 103 <el-tag v-if="scope.row.flowState == 1">等待审核</el-tag>
142 104 <el-tag type="success" v-else-if="scope.row.flowState == 2"
... ... @@ -153,43 +115,20 @@
153 115 >
154 116 <el-tag type="info" v-else>等待提交</el-tag>
155 117 </template>
156   - </el-table-column>
157   - <el-table-column label="操作" fixed="right" width="100">
  118 + </el-table-column> -->
  119 + <el-table-column label="操作" fixed="right" width="180">
158 120 <template slot-scope="scope">
159   - <el-button
160   - type="text"
161   - :disabled="[1, 2, 5].indexOf(scope.row.flowState) > -1"
162   - @click="addOrUpdateHandle(scope.row.id)"
163   - >编辑</el-button
164   - >
165   - <el-button
166   - type="text"
167   - :disabled="[1, 2, 3, 5].indexOf(scope.row.flowState) > -1"
168   - @click="handleDel(scope.row.id)"
169   - class="NCC-table-delBtn"
170   - >删除</el-button
171   - >
172   - <el-button
173   - size="mini"
174   - type="text"
175   - :disabled="!scope.row.flowState"
176   - @click="
177   - addOrUpdateHandle(scope.row.id, scope.row.flowState)
178   - "
179   - >详情</el-button
180   - >
  121 + <el-button type="text" :disabled="[1, 2, 5].indexOf(scope.row.flowState) > -1" @click="addOrUpdateHandle(scope.row.id)" >编辑</el-button>
  122 + <el-button type="text" :disabled="[1, 2, 5].indexOf(scope.row.flowState) > -1" @click="addOrUpdateHandle(scope.row.id)" >{{isSHILevel ? '下发' : '上报'}}</el-button>
  123 + <el-button type="text" :disabled="[1, 2, 3, 5].indexOf(scope.row.flowState) > -1" @click="handleDel(scope.row.id)" class="NCC-table-delBtn" >删除</el-button>
  124 + <el-button size="mini" type="text" :disabled="!scope.row.flowState" @click=" addOrUpdateHandle(scope.row.id, scope.row.flowState) " >详情</el-button>
181 125 </template>
182 126 </el-table-column>
183 127 </NCC-table>
184   - <pagination
185   - :total="total"
186   - :page.sync="listQuery.currentPage"
187   - :limit.sync="listQuery.pageSize"
188   - @pagination="initData"
189   - />
  128 + <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData"/>
190 129 </div>
191 130 </div>
192   - <FlowBox v-if="flowVisible" ref="FlowBox" @close="colseFlow" />
  131 + <FlowBox v-if="flowVisible" ref="FlowBox" @refresh="colseFlow" />
193 132 <ExportBox
194 133 v-if="exportBoxVisible"
195 134 ref="ExportBox"
... ... @@ -200,12 +139,14 @@
200 139 </div>
201 140 </template>
202 141 <script>
  142 +import infoMixin from "@/mixins/info";
203 143 import request from "@/utils/request";
204 144 import { getDictionaryDataSelector } from "@/api/systemData/dictionary";
205   -import FlowBox from "@/views/workFlow/components/FlowBox";
  145 +import FlowBox from "./Form.vue";
206 146 import ExportBox from "./ExportBox";
207 147 import { previewDataInterface } from "@/api/systemData/dataInterface";
208 148 export default {
  149 + mixins: [infoMixin],
209 150 components: { FlowBox, ExportBox },
210 151 data() {
211 152 return {
... ... @@ -231,7 +172,7 @@ export default {
231 172 columnList: [
232 173 { prop: "id", label: "主键" },
233 174 { prop: "registrationTime", label: "登记时间" },
234   - { prop: "number", label: "号" },
  175 + { prop: "number", label: "档案号" },
235 176 { prop: "systemName", label: "网站/APP名称" },
236 177 { prop: "registeredEntity", label: "注册主体" },
237 178 { prop: "category", label: "类别" },
... ... @@ -250,11 +191,18 @@ export default {
250 191 { fullName: "选项一", id: "1" },
251 192 { fullName: "选项二", id: "2" },
252 193 ],
  194 + areaOptions: [],
253 195 };
254 196 },
255   - computed: {},
  197 + computed: {
  198 + isSHILevel() {
  199 + // 判断角色是否为‘市级办公室’
  200 + return this.$store.state.user.islader;
  201 + },
  202 + },
256 203 created() {
257   - // this.initData()
  204 + this.initAreaTypeList();
  205 + this.initData();
258 206 },
259 207 methods: {
260 208 sortChange({ column, prop, order }) {
... ... @@ -306,18 +254,10 @@ export default {
306 254 })
307 255 .catch(() => {});
308 256 },
309   - addOrUpdateHandle(id, flowState) {
310   - let data = {
311   - id: id || "",
312   - enCode: "#visualDevanjcl",
313   - flowId: "577085427060573445",
314   - formType: 1,
315   - opType: flowState ? 0 : "-1",
316   - status: flowState,
317   - };
  257 + addOrUpdateHandle(id, isDetail) {
318 258 this.flowVisible = true;
319 259 this.$nextTick(() => {
320   - this.$refs.FlowBox.init(data);
  260 + this.$refs.FlowBox.init(id, isDetail);
321 261 });
322 262 },
323 263 search() {
... ...
src/views/baseInspectionReport/Form.vue
... ... @@ -5,7 +5,7 @@
5 5 :visible.sync="visible"
6 6 class="NCC-dialog NCC-dialog_center"
7 7 lock-scroll
8   - width="70%"
  8 + width="60%"
9 9 >
10 10 <el-row :gutter="15" class="">
11 11 <el-form
... ... @@ -30,13 +30,14 @@
30 30 </el-col>
31 31 <el-col :span="23">
32 32 <el-form-item label="问题来源" prop="source">
33   - <el-input
34   - v-model="dataForm.source"
35   - placeholder="请输入问题来源"
36   - clearable
37   - :style="{ width: '100%' }"
38   - >
39   - </el-input>
  33 + <el-radio-group v-model="dataForm.source">
  34 + <el-radio
  35 + v-for="(item, index) in sourceOptions"
  36 + :key="index"
  37 + :label="item.Id"
  38 + >{{ item.FullName }}</el-radio
  39 + >
  40 + </el-radio-group>
40 41 </el-form-item>
41 42 </el-col>
42 43 <el-col :span="23">
... ... @@ -70,7 +71,7 @@
70 71 </el-radio-group>
71 72 </el-form-item>
72 73 </el-col>
73   - <el-col :span="13">
  74 + <el-col :span="18">
74 75 <el-form-item label="问题类型" prop="questionType">
75 76 <el-radio-group v-model="dataForm.questionType" @change="questionTypeChange">
76 77 <el-radio
... ... @@ -84,7 +85,7 @@
84 85 </el-form-item>
85 86 </el-col>
86 87 <template v-if="otherQuestion">
87   - <el-col :span="10">
  88 + <el-col :span="5">
88 89 <el-input
89 90 v-model="dataForm.otherQuestionType"
90 91 placeholder="请输入问题类型"
... ... @@ -118,17 +119,7 @@
118 119 </el-form-item>
119 120 </el-col>
120 121 </template>
121   - <el-col :span="23">
122   - <el-form-item label="关键词" prop="questionClass">
123   - <el-input
124   - v-model="dataForm.questionClass"
125   - placeholder="请输入关键词"
126   - clearable
127   - :style="{ width: '100%' }"
128   - >
129   - </el-input>
130   - </el-form-item>
131   - </el-col>
  122 +
132 123 <el-col :span="23">
133 124 <el-form-item label="问题内容" prop="questionContent">
134 125 <el-input
... ... @@ -153,9 +144,19 @@
153 144 </el-input>
154 145 </el-form-item>
155 146 </el-col>
156   -
157 147 <el-col :span="23">
158   - <el-form-item label="取证内容" prop="obtainEvidence">
  148 + <el-form-item label="关键词" prop="questionClass">
  149 + <el-input
  150 + v-model="dataForm.questionClass"
  151 + placeholder="请输入关键词"
  152 + clearable
  153 + :style="{ width: '100%' }"
  154 + >
  155 + </el-input>
  156 + </el-form-item>
  157 + </el-col>
  158 + <el-col :span="23">
  159 + <el-form-item label="附件" prop="obtainEvidence">
159 160 <NCC-UploadFz
160 161 v-model="dataForm.obtainEvidence"
161 162 :fileSize="5"
... ... @@ -212,9 +213,6 @@ export default {
212 213 questionType: [
213 214 { required: true, message: "请选择问题类型", trigger: "change" },
214 215 ],
215   - questionClass: [
216   - { required: true, message: "请选择关键词", trigger: "change" },
217   - ],
218 216 },
219 217 sourceOptions: [
220 218 { fullName: "市网信办线索", id: "市网信办线索" },
... ... @@ -239,6 +237,7 @@ export default {
239 237 watch: {},
240 238 created() {
241 239 this.loadList();
  240 + this.getSourceOptions();
242 241 this.getplatformTypeOptions();
243 242 this.getquestionTypeOptions();
244 243 },
... ... @@ -269,6 +268,14 @@ export default {
269 268 (list = await this.$store.dispatch("getTypeListByCode", "system"));
270 269 this.platformTypeOptions = list;
271 270 },
  271 + async getSourceOptions() {
  272 + request({
  273 + url: `/Extend/baseinspectionreport/GetReportSourceList`,
  274 + method: "GET",
  275 + }).then(({data}) => {
  276 + this.sourceOptions = data;
  277 + })
  278 + },
272 279 getquestionTypeOptions() {
273 280 getDictionaryDataSelector("577006814432855301").then((res) => {
274 281 this.questionTypeOptions = res.data.list;
... ...
src/views/baseSpecialAction/Form.vue
... ... @@ -6,6 +6,7 @@
6 6 class="NCC-dialog NCC-dialog_center"
7 7 lock-scroll
8 8 width="50%"
  9 + v-loading="loading"
9 10 >
10 11 <el-row :gutter="15" style="padding-top: 10px">
11 12 <el-form
... ... @@ -272,12 +273,17 @@ export default {
272 273 goBack() {
273 274 this.$emit("refresh");
274 275 },
275   - init(id, isDetail) {
276   - this.dataForm.id = id || 0;
  276 + init(row, isDetail) {
  277 + this.dataForm.id = row.id || 0;
277 278 this.visible = true;
278 279 this.isDetail = isDetail || false;
279 280 this.$nextTick(() => {
280 281 this.$refs["elForm"].resetFields();
  282 + if(this.dataForm.id) {
  283 + console.log(row, 'row');
  284 + this.dataForm.communicationArea = JSON.parse(row.communicationArea);
  285 + this.dataForm.communicationOut = JSON.parse(row.communicationOut);
  286 + }
281 287 });
282 288 },
283 289 dataFormSubmit() {
... ...
src/views/baseSpecialAction/index.vue
... ... @@ -59,7 +59,7 @@
59 59 <el-table-column prop="creatorUserId" show-overflow-tooltip label="创建用户" align="left"/>
60 60 <el-table-column label="操作" fixed="right" width="100">
61 61 <template slot-scope="scope">
62   - <el-button type="text" @click="addOrUpdateHandle(scope.row.id)" v-if="scope.row.state == '未发布'">发布任务</el-button>
  62 + <el-button type="text" @click="addOrUpdateHandle(scope.row)" v-if="scope.row.state == '未发布'">发布任务</el-button>
63 63 <el-button type="text" @click="toDetail(scope.row)" v-else>处理情况</el-button>
64 64 </template>
65 65 </el-table-column>
... ... @@ -152,10 +152,10 @@ export default {
152 152 });
153 153 },
154 154  
155   - addOrUpdateHandle(id, isDetail) {
  155 + addOrUpdateHandle(row, isDetail) {
156 156 this.formVisible = true;
157 157 this.$nextTick(() => {
158   - this.$refs.NCCForm.init(id, isDetail);
  158 + this.$refs.NCCForm.init(row, isDetail);
159 159 });
160 160 },
161 161 toDetail(row) {
... ...
src/views/baseSystemInfo/DetailForm.vue
... ... @@ -360,12 +360,12 @@ export default {
360 360 };
361 361 </script>
362 362 <style lang="scss" scoped>
363   -.NCC-dialog.systemInfoDialog {
364   - :deep(.el-dialog__body) {
365   - overflow: unset !important;
366   - :deep(.el-tabs__content) {
367   - height: calc(65vh - 45px);
368   - }
369   - }
370   -}
  363 +// .NCC-dialog.systemInfoDialog {
  364 +// :deep(.el-dialog__body) {
  365 +// overflow: unset !important;
  366 +// :deep(.el-tabs__content) {
  367 +// height: calc(65vh - 45px);
  368 +// }
  369 +// }
  370 +// }
371 371 </style>
... ...
src/views/baseSystemInfo/InspectForm.vue
... ... @@ -5,7 +5,7 @@
5 5 :visible.sync="visible"
6 6 class="NCC-dialog NCC-dialog_center"
7 7 lock-scroll
8   - width="70%"
  8 + width="60%"
9 9 >
10 10 <el-row :gutter="15" class="">
11 11 <el-form
... ... @@ -19,13 +19,14 @@
19 19 >
20 20 <el-col :span="24">
21 21 <el-form-item label="问题来源" prop="source">
22   - <el-input
23   - v-model="dataForm.source"
24   - placeholder="请输入问题来源"
25   - clearable
26   - :style="{ width: '100%' }"
27   - >
28   - </el-input>
  22 + <el-radio-group v-model="dataForm.source">
  23 + <el-radio
  24 + v-for="(item, index) in sourceOptions"
  25 + :key="index"
  26 + :label="item.Id"
  27 + >{{ item.FullName }}</el-radio
  28 + >
  29 + </el-radio-group>
29 30 </el-form-item>
30 31 </el-col>
31 32 <el-col :span="24">
... ... @@ -59,7 +60,7 @@
59 60 </el-radio-group>
60 61 </el-form-item>
61 62 </el-col>
62   - <el-col :span="13">
  63 + <el-col :span="18">
63 64 <el-form-item label="问题类型" prop="questionType">
64 65 <el-radio-group v-model="dataForm.questionType" @change="questionTypeChange">
65 66 <el-radio
... ... @@ -73,7 +74,7 @@
73 74 </el-form-item>
74 75 </el-col>
75 76 <template v-if="otherQuestion">
76   - <el-col :span="10">
  77 + <el-col :span="5">
77 78 <el-input
78 79 v-model="dataForm.otherQuestionType"
79 80 placeholder="请输入问题类型"
... ... @@ -107,17 +108,7 @@
107 108 </el-form-item>
108 109 </el-col>
109 110 </template>
110   - <el-col :span="23">
111   - <el-form-item label="关键词" prop="questionClass">
112   - <el-input
113   - v-model="dataForm.questionClass"
114   - placeholder="请输入关键词"
115   - clearable
116   - :style="{ width: '100%' }"
117   - >
118   - </el-input>
119   - </el-form-item>
120   - </el-col>
  111 +
121 112 <el-col :span="23">
122 113 <el-form-item label="问题内容" prop="questionContent">
123 114 <el-input
... ... @@ -143,7 +134,18 @@
143 134 </el-form-item>
144 135 </el-col>
145 136 <el-col :span="23">
146   - <el-form-item label="取证内容" prop="obtainEvidence">
  137 + <el-form-item label="关键词" prop="questionClass">
  138 + <el-input
  139 + v-model="dataForm.questionClass"
  140 + placeholder="请输入关键词"
  141 + clearable
  142 + :style="{ width: '100%' }"
  143 + >
  144 + </el-input>
  145 + </el-form-item>
  146 + </el-col>
  147 + <el-col :span="23">
  148 + <el-form-item label="附件" prop="obtainEvidence">
147 149 <NCC-UploadFz
148 150 v-model="dataForm.obtainEvidence"
149 151 :fileSize="5"
... ... @@ -205,9 +207,6 @@ export default {
205 207 questionType: [
206 208 { required: true, message: "请选择问题类型", trigger: "change" },
207 209 ],
208   - questionClass: [
209   - { required: true, message: "请选择关键词", trigger: "change" },
210   - ],
211 210 },
212 211 sourceOptions: [
213 212 { fullName: "市网信办线索", id: "市网信办线索" },
... ... @@ -229,11 +228,20 @@ export default {
229 228 watch: {},
230 229 created() {
231 230 this.loadList();
  231 + this.getSourceOptions();
232 232 this.getplatformTypeOptions();
233 233 this.getquestionTypeOptions();
234 234 },
235 235 mounted() {},
236 236 methods: {
  237 + async getSourceOptions() {
  238 + request({
  239 + url: `/Extend/baseinspectionreport/GetReportSourceList`,
  240 + method: "GET",
  241 + }).then(({data}) => {
  242 + this.sourceOptions = data;
  243 + })
  244 + },
237 245 loadList(query) {
238 246 this.name_loading = true;
239 247 getInfoList({pageIndex: 1, pageSize: 100, keyword: query }).then(({ data }) => {
... ...
src/views/homePage/components/news/NewsDialog.vue
... ... @@ -38,7 +38,7 @@
38 38 </template>
39 39  
40 40 <script>
41   -import { getMessageList, ReadInfo } from "@/api/system/message";
  41 +import { getMessageList, ReadInfo, MessageAllRead } from "@/api/system/message";
42 42 import { message } from '@/utils/message';
43 43 export default {
44 44 name: "NewsDialog",
... ...
src/views/overView/Overview.vue
... ... @@ -20,9 +20,9 @@
20 20 <el-table-column prop="taskType" label="任务类型" show-overflow-tooltip width="100"/>
21 21 <el-table-column prop="taskState" label="状态" show-overflow-tooltip width="80"/>
22 22 <el-table-column prop="taskContent" label="任务内容" show-overflow-tooltip />
23   - <el-table-column prop="deadLine" label="任务期限" show-overflow-tooltip :formatter="ncc.tableDateFormat" width="140">
  23 + <el-table-column prop="deadLine" label="任务期限" show-overflow-tooltip :formatter="ncc.tableDateFormat" width="170">
24 24 <template slot-scope="scope">
25   - <el-tag :type="ncc.timeDeadLine(scope.row.deadLine)">{{ ncc.tableDateFormat(scope.row, 'deadLine', scope.row.deadLine) }}</el-tag>
  25 + <el-tag :type="`${ncc.timeDeadLine(scope.row.deadLine)}`">{{ncc.stateDeadLine(scope.row.deadLine)}}{{ ncc.tableDateFormat(scope.row, 'deadLine', scope.row.deadLine) }}</el-tag>
26 26 </template>
27 27 </el-table-column>
28 28 <el-table-column label="操作" width="100">
... ... @@ -111,13 +111,15 @@
111 111 <el-table :data="msgList" style="width: 100%" stripe v-loading="msgLoading">
112 112 <el-table-column prop="title" label="标题" show-overflow-tooltip>
113 113 </el-table-column>
114   - <el-table-column label="操作" fixed="right" width="80">
  114 + <el-table-column label="操作" fixed="right" width="150">
115 115 <template slot-scope="scope">
116   - <el-button type="text" @click="checkDetail(scope.row)">详情</el-button>
  116 + <el-button type="text" @click="checkDetail(scope.row)" v-if="isSHILevel">编辑</el-button>
  117 + <el-button type="text" style="color: red;" @click="delNew(scope.row)">删除</el-button>
  118 + <el-button type="text" style="color: #909399;" @click="checkDetail(scope.row, true)">详情</el-button>
117 119 </template>
118 120 </el-table-column>
119 121 </el-table>
120   - <pagination :total="msgTotal" :page.sync="msgListQuery.currentPage" :limit.sync="msgListQuery.pageSize" @pagination="getAllMsgList" />
  122 + <pagination :total="msgTotal" :page.sync="msgListQuery.currentPage" :limit.sync="msgListQuery.pageSize" @pagination="getAllMsgList" layout="prev, pager, next"/>
121 123 </template>
122 124 </div>
123 125 </div>
... ... @@ -220,13 +222,30 @@ export default {
220 222 this.MsgFormVisible = false;
221 223 val && this.getAllMsgList();
222 224 },
223   - checkDetail(row) {
224   - console.log(row);
  225 + checkDetail(row, isDetail) {
225 226 this.MsgFormVisible = true;
226 227 this.$nextTick(() => {
227   - this.$refs.MsgForm.init(row.id, true);
  228 + this.$refs.MsgForm.init(row.id, isDetail);
228 229 })
229 230 },
  231 + delNew(row) {
  232 + this.$confirm('此操作将永久删除该消息, 是否继续?', '提示', {
  233 + confirmButtonText: '确定',
  234 + cancelButtonText: '取消',
  235 + type: 'warning'
  236 + }).then(async () => {
  237 + let res = await request({
  238 + url: `/SubDev/ZyOaArticle/${row.id}`,
  239 + method: "DELETE",
  240 + });
  241 + this.$message({
  242 + message: res.msg,
  243 + type: 'success'
  244 + });
  245 + this.getAllMsgList();
  246 + });
  247 + },
  248 +
230 249 // 发布消息通知
231 250 announceMsg() {
232 251 this.MsgFormVisible = true;
... ...
src/views/overView/msgForm.vue
... ... @@ -44,7 +44,7 @@
44 44 </el-col>
45 45 <el-col :span="24">
46 46 <el-form-item label="传达区域" prop="communicationAreas">
47   - <el-checkbox-group v-model="dataForm.communicationAreas" :style="{}">
  47 + <el-checkbox-group v-model="dataForm.communicationAreas" @change="selectChange">
48 48 <el-checkbox
49 49 v-for="(item, index) in areaOptions"
50 50 :key="index"
... ... @@ -64,7 +64,7 @@
64 64 </el-col>
65 65 <el-col :span="24">
66 66 <el-form-item label="传达外协" prop="communicationOuts">
67   - <el-checkbox-group v-model="dataForm.communicationOuts" :style="{}">
  67 + <el-checkbox-group v-model="dataForm.communicationOuts" @change="selectChange">
68 68 <el-checkbox
69 69 v-for="(item, index) in communicationOutOptions"
70 70 :key="index"
... ... @@ -88,13 +88,33 @@
88 88 >
89 89 <div class="msg-title">{{ dataForm.title }}</div>
90 90 <div class="content" v-html="dataForm.bodyContent"></div>
91   - <div class="files"></div>
  91 + <div class="files" v-if="isSHILevel">
  92 + <h4>查看情况</h4>
  93 + <div class="tag-group">
  94 + <span class="tag-group__title title-tag">传递区域:</span>
  95 + <el-tag
  96 + v-for="(v, i) in dataForm.communicationAreaList"
  97 + :key="i"
  98 + :type="`${v.IsRead ? 'success' : 'danger'}`"
  99 + :effect="`${v.IsRead ? 'dark' : 'plain'}`">
  100 + {{ v.FullName }}
  101 + </el-tag>
  102 + </div>
  103 + <div class="tag-group">
  104 + <span class="tag-group__title title-tag">传达外协:</span>
  105 + <el-tag
  106 + v-for="(v, i) in dataForm.communicationOutList"
  107 + :key="i"
  108 + :type="`${v.IsRead ? 'success' : 'danger'}`"
  109 + :effect="`${v.IsRead ? 'dark' : 'plain'}`">
  110 + {{ v.FullName }}
  111 + </el-tag>
  112 + </div>
  113 + </div>
92 114 </div>
93 115 <span slot="footer" class="dialog-footer">
94 116 <el-button @click="visible = false">取 消</el-button>
95   - <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail"
96   - >确 定</el-button
97   - >
  117 + <el-button type="primary" @click="dataFormSubmit()" v-if="!isDetail" :loading="btnLoading">确 定</el-button>
98 118 </span>
99 119 </el-dialog>
100 120 </template>
... ... @@ -104,6 +124,20 @@ export default {
104 124 components: {},
105 125 props: [],
106 126 data() {
  127 + var validatecommunicationAreas = (rule, value, callback) => {
  128 + if (!this.dataForm.communicationOuts.length && !value?.length) {
  129 + callback(new Error('请输入传达区域'));
  130 + } else {
  131 + callback();
  132 + }
  133 + };
  134 + var validatecommunicationOuts = (rule, value, callback) => {
  135 + if (!this.dataForm.communicationAreas.length && !value?.length) {
  136 + callback(new Error('请选择传达外协'));
  137 + } else {
  138 + callback();
  139 + }
  140 + }
107 141 return {
108 142 loading: false,
109 143 visible: false,
... ... @@ -123,12 +157,24 @@ export default {
123 157 bodyContent: [
124 158 { required: true, message: "请输入内容", trigger: "blur" },
125 159 ],
  160 + communicationAreas: [
  161 + { validator: validatecommunicationAreas, trigger: 'change' }
  162 + ],
  163 + communicationOuts: [
  164 + { validator: validatecommunicationOuts, trigger: 'change' }
  165 + ],
126 166 },
127 167 areaOptions: [],
128 168 communicationOutOptions: [],
  169 + btnLoading: false,
129 170 };
130 171 },
131   - computed: {},
  172 + computed: {
  173 + isSHILevel() {
  174 + // 判断角色是否为‘市级办公室’
  175 + return this.$store.state.user.islader;
  176 + },
  177 + },
132 178 watch: {},
133 179 created() {
134 180 this.initAreaTypeList();
... ... @@ -145,7 +191,7 @@ export default {
145 191 this.visible = true;
146 192 this.isDetail = isDetail || false;
147 193 this.$nextTick(() => {
148   - !this.dataForm.id && this.$refs["elForm"].resetFields();
  194 + !this.isDetail && this.$refs["elForm"].resetFields();
149 195 if (this.dataForm.id) {
150 196 this.loading = true;
151 197 request({
... ... @@ -153,6 +199,16 @@ export default {
153 199 method: "GET",
154 200 }).then((res) => {
155 201 this.dataForm = res.data;
  202 + let AreaList = [];
  203 + res.data.communicationAreaList && res.data.communicationAreaList.forEach(v => {
  204 + AreaList.push(v.Id);
  205 + });
  206 + this.dataForm.communicationAreas = AreaList;
  207 + let OutList = [];
  208 + res.data.communicationOutList && res.data.communicationOutList.forEach(v => {
  209 + OutList.push(v.Id);
  210 + });
  211 + this.dataForm.communicationOuts = OutList;
156 212 this.loading = false;
157 213 });
158 214 }
... ... @@ -183,6 +239,7 @@ export default {
183 239 (option) => option.id
184 240 );
185 241 }
  242 + this.$forceUpdate();
186 243 },
187 244 // 反选
188 245 closeAreaAll(type) {
... ... @@ -199,27 +256,37 @@ export default {
199 256 )
200 257 .map((option) => option.id);
201 258 }
  259 + this.$forceUpdate();
  260 + },
  261 + selectChange() {
  262 + this.$forceUpdate();
202 263 },
203 264 dataFormSubmit() {
204 265 this.$refs["elForm"].validate((valid) => {
205 266 if (valid) {
206   - request({
207   - url: `/SubDev/ZyOaArticle`,
208   - method: "post",
209   - data: this.dataForm,
210   - }).then((res) => {
211   - this.$message({
212   - message: res.msg,
213   - type: "success",
214   - duration: 1000,
215   - onClose: () => {
216   - (this.visible = false), this.$emit("refresh", true);
217   - },
218   - });
219   - });
  267 + !this.dataForm.id ? this.toPostForm('/SubDev/ZyOaArticle', 'post') : this.toPostForm(`/SubDev/ZyOaArticle/${this.dataForm.id}`, 'put');
220 268 }
221 269 });
222 270 },
  271 + toPostForm(url, method) {
  272 + this.btnLoading = true;
  273 + request({
  274 + url,
  275 + method,
  276 + data: this.dataForm,
  277 + }).then((res) => {
  278 + this.$message({
  279 + message: res.msg,
  280 + type: "success",
  281 + duration: 1000,
  282 + onClose: () => {
  283 + this.btnLoading = false;
  284 + this.visible = false;
  285 + this.$emit("refresh", true);
  286 + },
  287 + });
  288 + });
  289 + }
223 290 },
224 291 };
225 292 </script>
... ... @@ -234,5 +301,18 @@ export default {
234 301 margin-bottom: 8px;
235 302 color: #000;
236 303 }
  304 + .files {
  305 + border-top: #e8e8e8 1px solid;
  306 + padding-top: 10px;
  307 + margin-top: 10px;
  308 + .title-tag {
  309 + line-height: 40px;
  310 + font-size: 12px;
  311 + margin-right: 10px;
  312 + }
  313 + :deep(.el-tag) {
  314 + margin: 0 5px;
  315 + }
  316 + }
237 317 }
238 318 </style>
... ...