5a54b6f5 by jiaozeping@pashanhoo.com
2 parents aed4c8fd d1ddb7ce
1 import request from '@/utils/request'
2 import SERVER from './config'
3
4 // 获取首页通知公告列表
5 export function getHomeNoticeList () {
6 return request({
7 url: SERVER.SERVERAPI + '/rest/workBench/getHomeNoticeList',
8 method: 'get'
9 })
10 }
11
12 // 获取首页待办事项
13 export function getHomeTodoList () {
14 return request({
15 url: SERVER.SERVERAPI + '/rest/workBench/getHomeTodoList',
16 method: 'get'
17 })
18 }
19
20 //获取首页已办事项
21 export function getHomeDoneList () {
22 return request({
23 url: SERVER.SERVERAPI + '/rest/workBench/getHomeDoneList',
24 method: 'get'
25 })
26 }
1 import request from '@/utils/request'
2 import SERVER from './config'
3
4 // 新增系统通知
5 export function addSysNotice (data) {
6 return request({
7 url: SERVER.SERVERAPI + '/rest/system/sysNotice/addSysNotice',
8 method: 'post',
9 data
10 })
11 }
12
13 // 获取通知列表
14 export function getSysNoticeList (data) {
15 return request({
16 url: SERVER.SERVERAPI + '/rest/system/sysNotice/getSysNoticeList',
17 method: 'post',
18 data
19 })
20 }
21
22 //获取法律法规列表
23 export function getSysPolicyList (data) {
24 return request({
25 url: SERVER.SERVERAPI + '/rest/system/sysNotice/getSysPolicyList',
26 method: 'post',
27 data
28 })
29 }
30
31 //删除系统通知
32 export function deleteSysNotice (params) {
33 return request({
34 url: SERVER.SERVERAPI + '/rest/system/sysNotice/deleteSysNotice',
35 method: 'get',
36 params: params
37 })
38 }
39
40 //发布通知
41 export function publishNotice (params) {
42 return request({
43 url: SERVER.SERVERAPI + '/rest/system/sysNotice/publishNotice',
44 method: 'get',
45 params: params
46 })
47 }
48
49 //取消发布通知
50 export function unPublishNotice (params) {
51 return request({
52 url: SERVER.SERVERAPI + '/rest/system/sysNotice/unPublishNotice',
53 method: 'get',
54 params: params
55 })
56 }
57
58 //设置已读状态
59 export function setReadStatus (params) {
60 return request({
61 url: SERVER.SERVERAPI + '/rest/system/sysNotice/setReadStatus',
62 method: 'get',
63 params: params
64 })
65 }
1 import request from '@/utils/request' 1 import request from '@/utils/request'
2 import SERVER from './config' 2 import SERVER from './config'
3
4 // 上传单个文件
5 export function upload (data) {
6 return request({
7 url: SERVER.SERVERAPI + '/rest/file/upload',
8 method: 'post',
9 data
10 })
11 }
12
3 /* 13 /*
4 系统管理 14 系统管理
5 申请业务规则API-根据条件进行列表查询 15 申请业务规则API-根据条件进行列表查询
......
...@@ -9,7 +9,6 @@ export default { ...@@ -9,7 +9,6 @@ export default {
9 Vue.component('lbTable', LbTable); 9 Vue.component('lbTable', LbTable);
10 Vue.component('Theme', Theme); 10 Vue.component('Theme', Theme);
11 Vue.prototype.$popup = Popup.install; 11 Vue.prototype.$popup = Popup.install;
12 Vue.prototype.$popupClose = Popup.close;
13 Vue.prototype.$alertMes = MessageBox.alert; 12 Vue.prototype.$alertMes = MessageBox.alert;
14 } 13 }
15 } 14 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -16,11 +16,5 @@ Popup.install = function (title, editItem, data, formData) { ...@@ -16,11 +16,5 @@ Popup.install = function (title, editItem, data, formData) {
16 instance.isShow = true 16 instance.isShow = true
17 }) 17 })
18 } 18 }
19 Popup.close = function () {
20 let instance = new PopupBox().$mount()
21 Vue.nextTick(() => {
22 instance.isShow = false
23 })
24 }
25 19
26 export default Popup 20 export default Popup
......
...@@ -58,13 +58,13 @@ export default { ...@@ -58,13 +58,13 @@ export default {
58 setTimeout(() => { 58 setTimeout(() => {
59 if (this.btnShow) { 59 if (this.btnShow) {
60 if (this.height == 'auto') { 60 if (this.height == 'auto') {
61 this.contentHeight = (this.$refs.contentRef.offsetHeight + 20) + 'px' 61 this.contentHeight = (this.$refs.contentRef.offsetHeight) + 'px'
62 } else { 62 } else {
63 this.contentHeight = this.height 63 this.contentHeight = this.height
64 } 64 }
65 } else { 65 } else {
66 if (this.height == 'auto') { 66 if (this.height == 'auto') {
67 this.contentHeight = (this.$refs.contentRef.offsetHeight + 20) + 'px' 67 this.contentHeight = (this.$refs.contentRef.offsetHeight) + 'px'
68 } else { 68 } else {
69 this.contentHeight = this.height 69 this.contentHeight = this.height
70 } 70 }
......
...@@ -261,6 +261,22 @@ export const asyncRoutes = [ ...@@ -261,6 +261,22 @@ export const asyncRoutes = [
261 name: 'dymbgl', 261 name: 'dymbgl',
262 meta: { title: '打印模板管理' } 262 meta: { title: '打印模板管理' }
263 }, 263 },
264 {
265 path: 'xttz',
266 id: '95',
267 parentId: '9',
268 component: () => import('@/views/system/xttz/xttz.vue'),
269 name: 'xttz',
270 meta: { title: '系统通知' }
271 },
272 {
273 path: 'flfg',
274 id: '96',
275 parentId: '9',
276 component: () => import('@/views/system/flfg/flfg.vue'),
277 name: 'flfg',
278 meta: { title: '法律法规' }
279 },
264 ] 280 ]
265 }, 281 },
266 { 282 {
......
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
18 display: flex; 18 display: flex;
19 font-size: 12px; 19 font-size: 12px;
20 flex-wrap: wrap; 20 flex-wrap: wrap;
21 padding-top: 10px; 21 padding-top: 5px;
22 height: 30px;
22 23
23 span { 24 span {
24 display: flex; 25 display: flex;
......
...@@ -20,21 +20,18 @@ export default { ...@@ -20,21 +20,18 @@ export default {
20 handleSizeChange (val) { 20 handleSizeChange (val) {
21 this.pageData.currentPage = 1 21 this.pageData.currentPage = 1
22 this.pageData.pageSize = val 22 this.pageData.pageSize = val
23 if (this.fetchData) {
24 this.fetchData()
25 }
26 if (this.queryClick) {
27 this.queryClick() 23 this.queryClick()
28 }
29 }, 24 },
30 handleCurrentChange (val) { 25 handleCurrentChange (val) {
31 this.pageData.currentPage = val 26 this.pageData.currentPage = val
32 if (this.fetchData) { 27 if (this.fetchData) {
33 this.fetchData() 28 this.fetchData()
34 } 29 }
30 console.log('this.queryClick,', this.queryClick, 'this.fetchData', this.fetchData);
35 if (this.queryClick) { 31 if (this.queryClick) {
36 this.queryClick() 32 this.queryClick()
37 } 33 }
34 console.log(val, this.pageData.currentPage, 'this.pageDatathis.pageData');
38 }, 35 },
39 handleDel () { 36 handleDel () {
40 let deleteAfterPage = Math.ceil((this.tableData.total - 1) / this.pageData.pageSize) 37 let deleteAfterPage = Math.ceil((this.tableData.total - 1) / this.pageData.pageSize)
......
...@@ -76,5 +76,21 @@ ...@@ -76,5 +76,21 @@
76 .home-right { 76 .home-right {
77 padding-left: 4px; 77 padding-left: 4px;
78 width: 30%; 78 width: 30%;
79
80 .list-title {
81 overflow: hidden;
82 text-overflow: ellipsis;
83 white-space: nowrap;
84 }
85
86 ul {
87 li {
88 line-height: 36px;
89
90 p {
91 white-space: nowrap;
92 }
93 }
94 }
79 } 95 }
80 } 96 }
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -14,16 +14,17 @@ ...@@ -14,16 +14,17 @@
14 </el-card> 14 </el-card>
15 </el-col> 15 </el-col>
16 <el-col :span="12"> 16 <el-col :span="12">
17 <el-card shadow="hover"> 17 <el-card shadow="hover" style="height:245px">
18 <div slot="header" class="flexst"> 18 <div slot="header" class="flexst">
19 <h5 class="title">通知公告</h5> 19 <h5 class="title">系统通知</h5>
20 <i class="el-icon-s-unfold pointer"></i> 20 <i class="el-icon-s-unfold pointer"></i>
21 </div> 21 </div>
22 <ul> 22 <ul>
23 <li v-for="(item, index) in notice" :key="index" @click="handleNotice" class="flexst pointer"> 23 <li v-for="(item, index) in noticeList" :key="index" @click="handleNotice" class="flexst pointer">
24 <p class="list-title">{{ item.title }}</p> 24 <p class="list-title">{{ item.noticeTitle }}</p>
25 <p class="marginZL15">{{ item.date }}</p> 25 <p class="marginZL15">{{ item.createtime }}</p>
26 <p>{{ item.state }}</p> 26 <p v-if="item.userBrowse == '1'" style="color:red">未读</p>
27 <p v-else>已读</p>
27 </li> 28 </li>
28 </ul> 29 </ul>
29 </el-card> 30 </el-card>
...@@ -31,29 +32,29 @@ ...@@ -31,29 +32,29 @@
31 </el-row> 32 </el-row>
32 <el-row :gutter="8" class="marginTop10"> 33 <el-row :gutter="8" class="marginTop10">
33 <el-col :span="12"> 34 <el-col :span="12">
34 <el-card shadow="hover"> 35 <el-card shadow="hover" style="height:280px">
35 <div slot="header" class="flexst"> 36 <div slot="header" class="flexst">
36 <h5 class="title">待办事项</h5> 37 <h5 class="title">待办事项</h5>
37 <i class="el-icon-s-unfold pointer"></i> 38 <i class="el-icon-s-unfold pointer"></i>
38 </div> 39 </div>
39 <ul> 40 <ul>
40 <li v-for="(item, index) in toList" :key="index" class="flexst"> 41 <li v-for="(item, index) in todoList" :key="index" class="flexst">
41 <p class="right15">{{ item.date }}</p> 42 <p class="right15">{{ item.dealTime }}</p>
42 <p class="list-title">{{ item.title }}</p> 43 <p class="list-title">{{ item.dealBusiness }} ({{item.dealStep+ '环节'}})</p>
43 </li> 44 </li>
44 </ul> 45 </ul>
45 </el-card> 46 </el-card>
46 </el-col> 47 </el-col>
47 <el-col :span="12"> 48 <el-col :span="12">
48 <el-card shadow="hover"> 49 <el-card shadow="hover" style="height:280px">
49 <div slot="header" class="flexst"> 50 <div slot="header" class="flexst">
50 <h5 class="title">法律法规</h5> 51 <h5 class="title">法律法规</h5>
51 <i class="el-icon-s-unfold pointer"></i> 52 <i class="el-icon-s-unfold pointer"></i>
52 </div> 53 </div>
53 <ul> 54 <ul>
54 <li v-for="(item, index) in mailList" @click="handleView" :key="index" class="flexst pointer"> 55 <li v-for="(item, index) in policyList" @click="handleView(item.noticeFileUrl)" :key="index" class="flexst pointer">
55 <p class="right15">{{ item.date }}</p> 56 <p class="right15">{{ item.noticeTitle }}</p>
56 <p class="list-title">{{ item.title }}</p> 57 <p class="list-title">{{ item.createtime }}</p>
57 </li> 58 </li>
58 </ul> 59 </ul>
59 </el-card> 60 </el-card>
...@@ -67,7 +68,16 @@ ...@@ -67,7 +68,16 @@
67 <div class="home-right"> 68 <div class="home-right">
68 <calendar /> 69 <calendar />
69 <el-card shadow="hover" class="marginTop10"> 70 <el-card shadow="hover" class="marginTop10">
70 鼠标悬浮时显示 71 <div slot="header" class="flexst">
72 <h5 class="title">动态信息</h5>
73 <i class="el-icon-s-unfold pointer"></i>
74 </div>
75 <ul>
76 <li v-for="(item, index) in doneList" :key="index" class="flexst">
77 <p class="right15">{{ item.dealTime }}</p>
78 <p class="list-title">{{ item.dealBusiness }} ({{item.dealStep+ '环节'}})</p>
79 </li>
80 </ul>
71 </el-card> 81 </el-card>
72 </div> 82 </div>
73 </div> 83 </div>
...@@ -75,6 +85,8 @@ ...@@ -75,6 +85,8 @@
75 <script> 85 <script>
76 import * as G2 from '@antv/g2' 86 import * as G2 from '@antv/g2'
77 import calendar from '@/components/Calendar/index' 87 import calendar from '@/components/Calendar/index'
88 import { getHomeNoticeList, getHomeTodoList, getHomeDoneList } from "@/api/home.js";
89 import { setReadStatus } from "@/api/notice.js";
78 export default { 90 export default {
79 name: 'home', 91 name: 'home',
80 components: { calendar }, 92 components: { calendar },
...@@ -137,77 +149,48 @@ export default { ...@@ -137,77 +149,48 @@ export default {
137 year: '1996', 149 year: '1996',
138 value: 31056 150 value: 31056
139 }], 151 }],
140 notice: [ 152 noticeList: [],
141 { 153 todoList: [],
142 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗', 154 doneList: [],
143 date: '2022-12', 155 policyList: []
144 state: '未读'
145 },
146 {
147 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
148 date: '2022-12',
149 state: '未读'
150 },
151 {
152 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
153 date: '2022-12',
154 state: '未读'
155 },
156 {
157 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
158 date: '2022-12',
159 state: '未读'
160 },
161 ],
162 toList: [
163 {
164 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
165 date: '2022-12',
166 },
167 {
168 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
169 date: '2022-12',
170 }
171 ,
172 {
173 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
174 date: '2022-12',
175 }
176 ,
177 {
178 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
179 date: '2022-12',
180 }
181 ],
182 mailList: [
183 {
184 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
185 date: '2022-12',
186 },
187 {
188 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
189 date: '2022-12',
190 },
191 {
192 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
193 date: '2022-12',
194 }
195 ,
196 {
197 title: '坚持以人民为中心发展推进解决房地产历史遗房地产历史遗',
198 date: '2022-12',
199 }
200 ]
201 } 156 }
202 }, 157 },
203 mounted () { 158 mounted () {
204 this.buildChart(); 159 this.buildChart();
160 this.queryTodoList();
161 this.queryDoneList();
162 this.queryNoticeList();
205 }, 163 },
206 methods: { 164 methods: {
207 handleView () { 165 handleView (pdfUrl) {
208 const href = 'http://storage.xuetangx.com/public_assets/xuetangx/PDF/PlayerAPI_v1.0.6.pdf' 166 const href = pdfUrl
209 window.open(href, '_blank'); 167 window.open(href, '_blank');
210 }, 168 },
169 //获取待办事项列表
170 queryTodoList(){
171 getHomeTodoList().then(res => {
172 if(res.result){
173 this.todoList = res.result
174 }
175 })
176 },
177 //获取已办事项列表
178 queryDoneList(){
179 getHomeDoneList().then(res => {
180 if(res.result){
181 this.doneList = res.result
182 }
183 })
184 },
185 //获取通知列表
186 queryNoticeList(){
187 getHomeNoticeList().then(res => {
188 if(res.result){
189 this.noticeList = res.result.noticeList
190 this.policyList = res.result.policyList
191 }
192 })
193 },
211 buildChart () { 194 buildChart () {
212 let height = document.getElementById("mountNodeCon").offsetHeight - 20 195 let height = document.getElementById("mountNodeCon").offsetHeight - 20
213 var chart = new G2.Chart({ 196 var chart = new G2.Chart({
...@@ -240,6 +223,7 @@ export default { ...@@ -240,6 +223,7 @@ export default {
240 }, 223 },
241 handleNotice () { 224 handleNotice () {
242 this.$alertMes('9999999999') 225 this.$alertMes('9999999999')
226 //setReadStatus({'bsmNotice':bsmNotice})
243 } 227 }
244 } 228 }
245 } 229 }
......
1 <template>
2 <dialogBox title="新增法律法规" @submitForm="submitForm" saveButton="保存" :isFullscreen="false" width="50%"
3 @closeDialog="closeDialog" v-model="value">
4 <el-form ref="ruleForm" :model="ruleForm" label-width="100px" :rules="rules">
5 <el-row>
6 <el-col :span="12">
7 <el-form-item label="标题:" prop="noticeTitle">
8 <el-input v-model="ruleForm.noticeTitle"></el-input>
9 </el-form-item>
10 </el-col>
11 </el-row>
12 <el-row>
13 <el-col :span="8">
14 <el-form-item label="附件:" prop="noticeFileUrl">
15 <el-upload action="" :file-list="fileList" multiple :auto-upload="false" :limit="1"
16 :on-change="handleChange" :before-upload="beforeUpload">
17 <el-button icon="el-icon-upload" type="primary">上传</el-button>
18 <div slot="tip" class="el-upload__tip">支持上传doc、docx、xls、xlsx、pdf文件,大小不超过20MB</div>
19 </el-upload>
20 </el-form-item>
21 </el-col>
22 </el-row>
23 </el-form>
24 </dialogBox>
25 </template>
26
27 <script>
28 import '@/styles/package/theme/index.scss'
29 import { addSysNotice} from "@/api/notice.js"
30 import { upload} from "@/api/system.js"
31 export default {
32 props: {
33 value: { type: Boolean, default: false },
34 },
35 data () {
36 return {
37 ruleForm: {
38 noticeTitle: '',
39 noticeContent: '',
40 noticeFileUrl: '',
41 noticeType: '2'
42 },
43 rules: {
44 noticeTitle: [
45 { required: true, message: '请输入法律法规标题', trigger: 'blur' }
46 ]
47 },
48 }
49 },
50
51 methods: {
52 submitForm () {
53 let that = this;
54 that.$refs.ruleForm.validate(valid => {
55 if (valid) {
56 addSysNotice(this.ruleForm).then(res => {
57 if (res.code == 200) {
58 this.$message.success('保存成功')
59 this.$emit("input", false);
60 this.$parent.queryClick();
61 } else {
62 this.$message.error(res.message)
63 }})
64 } else {
65 // console.log('error submit!!');
66 return false;
67 }
68 });
69 },
70 //关闭窗口
71 closeDialog () {
72 this.$emit("input", false);
73 this.resetRuleForm();
74 },
75 //
76 resetRuleForm(){
77 this.$refs['ruleForm'].resetFields();
78 this.ruleForm.noticeType = '2'
79 },
80 beforeUpload (file) {
81 return true;
82 },
83 async handleChange (file) {
84 var formdata = new FormData();
85 formdata.append("file", file.raw);
86 upload(formdata).then(res => {
87 this.ruleForm.noticeFileUrl = res.message
88 })
89 },
90 }
91 }
92 </script>
93 <style scoped lang="scss">
94 @import "~@/styles/public.scss";
95 </style>
...\ No newline at end of file ...\ No newline at end of file
1 <template>
2 <div class="from-clues">
3 <!-- 表单部分 -->
4 <div class="from-clues-header">
5 <el-form :model="ruleForm" @submit.native.prevent label-width="80px">
6 <el-row>
7 <el-col :span="5">
8 <el-form-item label="标题">
9 <el-input v-model="ruleForm.noticeTitle" @clear="queryClick()" clearable placeholder="法律法规"></el-input>
10 </el-form-item>
11 </el-col>
12 <el-col :span="19" class="btnColRight">
13 <el-form-item>
14 <el-button type="primary" native-type="submit" @click="queryClick()">查询</el-button>
15 <el-button type="primary" @click="openDialog()">新增</el-button>
16 </el-form-item>
17 </el-col>
18 </el-row>
19 </el-form>
20 </div>
21 <!-- 表格 -->
22 <div class="from-clues-content">
23 <lb-table :page-size="pageData.size" border :current-page.sync="pageData.current" :total="tableData.total"
24 @size-change="handleSizeChange" @p-current-change="handleCurrentChange" :column="tableData.columns"
25 :data="tableData.data">
26 </lb-table>
27 </div>
28 <addDialog ref="addDialog" v-model="isDialog" />
29 </div>
30 </template>
31 <script>
32 import table from "@/utils/mixin/table";
33 import { datas, sendThis } from "./flfgdata";
34 import { getSysPolicyList,deleteSysNotice } from "@/api/notice.js"
35 import addDialog from "./components/addDialog.vue";
36 export default {
37 name: "xttz",
38 components: { addDialog},
39 mixins: [table],
40 mounted () {
41 sendThis(this);
42 this.queryClick()
43 },
44 data () {
45 return {
46 isDialog: false,
47 viewDialog: false,
48 ruleForm: {
49 noticeTitle: ''
50 },
51 tableData: {
52 total: 0,
53 columns: datas.columns(),
54 data: [],
55 },
56 isDiglog: false
57 }
58 },
59 methods: {
60 // 列表渲染接口
61 queryClick () {
62 this.$startLoading()
63 getSysPolicyList({ ...this.ruleForm, ...this.pageData }, { 'target': '#flfgLoading' }).then(res => {
64 if (res.code === 200) {
65 this.$endLoading()
66 let { total, records } = res.result
67 this.tableData.total = total;
68 this.tableData.data = records
69 }
70 })
71 },
72 //打开新增弹窗
73 openDialog() {
74 this.isDialog = true;
75 },
76 downloadFile(item){
77 const href = item.noticeFileUrl
78 window.open(href, '_blank');
79 },
80 //删除
81 delNotice(item){
82 this.$confirm('是否确定删除', '提示', {
83 confirmButtonText: '确定',
84 cancelButtonText: '取消',
85 type: 'warning'
86 }).then(() => {
87 deleteSysNotice({ "bsmNotice": item.bsmNotice }).then(res => {
88 if (res.code == 200) {
89 this.$message.success('删除成功')
90 this.queryClick();
91 } else {
92 this.$message.error(res.message)
93 }
94 })
95 }).catch(() => {
96 this.$message({
97 type: 'info',
98 message: '已取消删除'
99 });
100 });
101 },
102 },
103 };
104 </script>
105 <style scoped lang="scss">
106 @import "~@/styles/public.scss";
107 </style>
1 import filter from '@/utils/filter.js'
2 let vm = null
3 const sendThis = (_this) => {
4 vm = _this
5 }
6 class data extends filter {
7 constructor() {
8 super()
9 }
10 columns () {
11 return [
12 {
13 label: '序号',
14 type: 'index',
15 width: '50',
16 render: (h, scope) => {
17 return (
18 <div>
19 {(vm.pageData.currentPage - 1) * vm.pageData.pageSize + scope.$index + 1}
20 </div>
21 )
22 }
23 },
24 {
25 prop: "noticeTitle",
26 label: "法律法规标题",
27 },
28 {
29 prop: "noticeFileName",
30 label: "附件",
31 render: (h, scope) => {
32 return <div class="pointer" onClick={() => { vm.downloadFile(scope.row) }}>{scope.row.noticeFileName}</div>
33 }
34 },
35 {
36 prop: "creater",
37 width: '120',
38 label: "创建人",
39 },
40 {
41 prop: "createtime",
42 label: "创建时间",
43 },
44 {
45 label: '操作',
46 align: 'center',
47 fixed: 'right',
48 render: (h, scope) => {
49 return <div>
50 <el-button type="text" icon="el-icon-delete" onClick={() => { vm.delNotice(scope.row) }}>删除</el-button>
51 </div>
52 }
53 }
54 ]
55 }
56
57 ywlys () {
58 return [
59 { value: 1, label: "办事大厅" },
60 { value: 2, label: "微信小程序" },
61 { value: 3, label: "法院端" },
62 { value: 4, label: "银行端" },
63 ]
64 }
65
66 }
67 let datas = new data()
68 export {
69 datas,
70 sendThis
71 }
1 <template>
2 <dialogBox title="新增系统通知" @submitForm="submitForm" saveButton="保存" :isFullscreen="false" width="50%"
3 @closeDialog="closeDialog" v-model="value">
4 <el-form ref="ruleForm" :model="ruleForm" label-width="100px" :rules="rules">
5 <el-row>
6 <el-col :span="12">
7 <el-form-item label="通知标题:" prop="noticeTitle">
8 <el-input v-model="ruleForm.noticeTitle"></el-input>
9 </el-form-item>
10 </el-col>
11 </el-row>
12 <el-row>
13 <el-col :span="24">
14 <el-form-item label="通知内容:" prop="noticeContent">
15 <el-input v-model="ruleForm.noticeContent" type="textarea" :rows="16"></el-input>
16 </el-form-item>
17 </el-col>
18 </el-row>
19 <el-row>
20 <el-col :span="8">
21 <el-form-item label="附件:" prop="noticeFileUrl">
22 <el-upload action="" :file-list="fileList" multiple :auto-upload="false" :limit="1"
23 :on-change="handleChange" :before-upload="beforeUpload">
24 <el-button icon="el-icon-upload" type="primary">上传</el-button>
25 <div slot="tip" class="el-upload__tip">文件大小不超过20MB</div>
26 </el-upload>
27 </el-form-item>
28 </el-col>
29 </el-row>
30 </el-form>
31 </dialogBox>
32 </template>
33
34 <script>
35 import '@/styles/package/theme/index.scss'
36 import { addSysNotice} from "@/api/notice.js"
37 import { upload} from "@/api/system.js"
38 export default {
39 props: {
40 value: { type: Boolean, default: false },
41 },
42 data () {
43 return {
44 ruleForm: {
45 noticeTitle: '',
46 noticeContent: '',
47 noticeFileUrl: '',
48 noticeType: '1'
49 },
50 rules: {
51 noticeTitle: [
52 { required: true, message: '请输入通知标题', trigger: 'blur' }
53 ],
54 noticeContent: [
55 { required: true, message: '请输入通知内容', trigger: 'blur' }
56 ]
57 },
58 }
59 },
60
61 methods: {
62 submitForm () {
63 let that = this;
64 that.$refs.ruleForm.validate(valid => {
65 if (valid) {
66 addSysNotice(this.ruleForm).then(res => {
67 if (res.code == 200) {
68 this.$message.success('保存成功')
69 this.$emit("input", false);
70 this.$parent.queryClick();
71 } else {
72 this.$message.error(res.message)
73 }})
74 } else {
75 // console.log('error submit!!');
76 return false;
77 }
78 });
79 },
80 //关闭窗口
81 closeDialog () {
82 this.$emit("input", false);
83 this.resetRuleForm();
84 },
85 //
86 resetRuleForm(){
87 this.$refs['ruleForm'].resetFields();
88 this.ruleForm.noticeType = '1'
89 },
90 beforeUpload (file) {
91 return true
92 },
93 async handleChange (file) {
94 var formdata = new FormData();
95 formdata.append("file", file.raw);
96 upload(formdata).then(res => {
97 this.ruleForm.noticeFileUrl = res.message
98 })
99 },
100 }
101 }
102 </script>
103 <style scoped lang="scss">
104 @import "~@/styles/public.scss";
105 </style>
...\ No newline at end of file ...\ No newline at end of file
1 <template>
2 <div>
3 <el-row :gutter="8">
4 <el-col :span="16">
5 通知标题:
6 <el-input v-model="formData.item.noticeTitle"></el-input>
7 </el-col>
8 </el-row>
9 <el-row :gutter="8">
10 <el-col :span="24" class="margin-top-middle">
11 通知内容:
12 <el-input type="textarea" :rows="20" v-model="formData.item.noticeContent"></el-input>
13 </el-col>
14 </el-row>
15 <el-row :gutter="8">
16 <el-col :span="24" class="margin-top-middle">
17 附件:
18 <div @click="handleView(formData.item.noticeFileUrl)" class="pointer">{{formData.item.noticeFileName}}</div>
19 </el-col>
20 </el-row>
21 </div>
22 </template>
23 <script>
24 export default {
25 data () {
26 return {
27 };
28 },
29 components: { },
30 props: {
31 formData: {
32 type: Object,
33 default: () => {}
34 },
35 },
36 created(){
37 console.log(this.formData);
38 },
39 computed: {
40
41 },
42
43 methods: {
44
45 },
46 };
47 </script>
48 <style scoped lang='scss'>
49 @import "~@/styles/public.scss";
50 .margin-top-middle {
51 margin-top:10px
52 }
53 </style>
...\ No newline at end of file ...\ No newline at end of file
1 <template>
2 <div class="from-clues">
3 <!-- 表单部分 -->
4 <div class="from-clues-header">
5 <el-form :model="ruleForm" @submit.native.prevent label-width="80px">
6 <el-row>
7 <el-col :span="5">
8 <el-form-item label="通知标题">
9 <el-input v-model="ruleForm.noticeTitle" @clear="queryClick()" clearable placeholder="通知标题"></el-input>
10 </el-form-item>
11 </el-col>
12 <el-col :span="5">
13 <el-form-item label="通知状态">
14 <el-select v-model="ruleForm.noticeStatus" class="width100" filterable clearable placeholder="请选择通知状态">
15 <el-option v-for="item in noticeStatusList" :key="item.value" :label="item.label" :value="item.value">
16 </el-option>
17 </el-select>
18 </el-form-item>
19 </el-col>
20 <el-col :span="14" class="btnColRight">
21 <el-form-item>
22 <el-button type="primary" native-type="submit" @click="queryClick()">查询</el-button>
23 <el-button type="primary" @click="openDialog()">新增</el-button>
24 </el-form-item>
25 </el-col>
26 </el-row>
27 </el-form>
28 </div>
29 <!-- 表格 -->
30 <div class="from-clues-content">
31 <lb-table :page-size="pageData.size" border :current-page.sync="pageData.current" :total="tableData.total"
32 @size-change="handleSizeChange" @p-current-change="handleCurrentChange" :column="tableData.columns"
33 :data="tableData.data">
34 </lb-table>
35 </div>
36 <addDialog ref="addDialog" v-model="isDialog" />
37 </div>
38 </template>
39 <script>
40 import table from "@/utils/mixin/table";
41 import { datas, sendThis } from "./xttzdata";
42 import { getSysNoticeList,deleteSysNotice,publishNotice,unPublishNotice } from "@/api/notice.js"
43 import addDialog from "./components/addDialog.vue";
44 export default {
45 name: "xttz",
46 components: { addDialog},
47 mixins: [table],
48 mounted () {
49 sendThis(this);
50 this.queryClick()
51 },
52 data () {
53 return {
54 isDialog: false,
55 viewDialog: false,
56 ruleForm: {
57 noticeTitle: '',
58 noticeStatus: ''
59 },
60 noticeStatusList: [
61 {"label": '未发布','value':'1'},
62 {'label': '已发布','value':'2'}
63 ],
64 tableData: {
65 total: 0,
66 columns: datas.columns(),
67 data: [],
68 },
69 isDiglog: false
70 }
71 },
72 methods: {
73 // 列表渲染接口
74 queryClick () {
75 this.$startLoading()
76 getSysNoticeList({ ...this.ruleForm, ...this.pageData }, { 'target': '#xttzLoading' }).then(res => {
77 if (res.code === 200) {
78 this.$endLoading()
79 let { total, records } = res.result
80 this.tableData.total = total;
81 this.tableData.data = records
82 }
83 })
84 },
85 //打开新增弹窗
86 openDialog() {
87 this.isDialog = true;
88 },
89 //删除
90 delNotice(item){
91 this.$confirm('是否确定删除', '提示', {
92 confirmButtonText: '确定',
93 cancelButtonText: '取消',
94 type: 'warning'
95 }).then(() => {
96 deleteSysNotice({ "bsmNotice": item.bsmNotice }).then(res => {
97 if (res.code == 200) {
98 this.$message.success('删除成功')
99 this.queryClick();
100 } else {
101 this.$message.error(res.message)
102 }
103 })
104 }).catch(() => {
105 this.$message({
106 type: 'info',
107 message: '已取消删除'
108 });
109 });
110 },
111 //发布
112 toPublish(item){
113 this.$confirm('是否确定发布', '提示', {
114 confirmButtonText: '确定',
115 cancelButtonText: '取消',
116 type: 'warning'
117 }).then(() => {
118 publishNotice({ "bsmNotice": item.bsmNotice }).then(res => {
119 if (res.code == 200) {
120 this.$message.success('发布成功')
121 this.queryClick();
122 } else {
123 this.$message.error(res.message)
124 }
125 })
126 }).catch(() => {
127 this.$message({
128 type: 'info',
129 message: '操作取消'
130 });
131 });
132 },
133 //取消发布
134 toUnPublish(item){
135 this.$confirm('是否确定取消发布', '提示', {
136 confirmButtonText: '确定',
137 cancelButtonText: '取消',
138 type: 'warning'
139 }).then(() => {
140 unPublishNotice({ "bsmNotice": item.bsmNotice }).then(res => {
141 if (res.code == 200) {
142 this.$message.success('删除成功')
143 this.queryClick();
144 } else {
145 this.$message.error(res.message)
146 }
147 })
148 }).catch(() => {
149 this.$message({
150 type: 'info',
151 message: '操作取消'
152 });
153 });
154 },
155 downloadFile(item){
156 const href = item.noticeFileUrl
157 window.open(href, '_blank');
158 },
159 viewDetail(e){
160 this.$popup("错误日志", "system/xttz/components/viewDialog", {
161 formData: {
162 item: e
163 }
164 })
165 }
166 },
167 };
168 </script>
169 <style scoped lang="scss">
170 @import "~@/styles/public.scss";
171 </style>
1 import filter from '@/utils/filter.js'
2 let vm = null
3 const sendThis = (_this) => {
4 vm = _this
5 }
6 class data extends filter {
7 constructor() {
8 super()
9 }
10 columns () {
11 return [
12 {
13 label: '序号',
14 type: 'index',
15 width: '50',
16 render: (h, scope) => {
17 return (
18 <div>
19 {(vm.pageData.currentPage - 1) * vm.pageData.pageSize + scope.$index + 1}
20 </div>
21 )
22 }
23 },
24 {
25 prop: "noticeTitle",
26 label: "通知标题",
27 },
28 {
29 label: "通知内容",
30 render: (h, scope) => {
31 return <div class="item-cwnr">{scope.row.noticeContent}</div>
32 }
33 },
34 {
35 prop: "noticeFileName",
36 label: "通知附件",
37 render: (h, scope) => {
38 return <div class="pointer" onClick={() => { vm.downloadFile(scope.row) }}>{scope.row.noticeFileName}</div>
39 }
40 },
41 {
42 label: "发布状态",
43 width: '80',
44 render: (h, scope) => {
45 switch (scope.row.noticeStatus) {
46 case '1':
47 return <div class='prohibit'>未发布</div>
48 case '2':
49 return <div class='allow'>已发布</div>
50 }
51 }
52 },
53 {
54 prop: "creater",
55 width: '120',
56 label: "创建人",
57 },
58 {
59 prop: "createtime",
60 label: "创建时间",
61 },
62 {
63 label: '操作',
64 align: 'center',
65 fixed: 'right',
66 render: (h, scope) => {
67 switch (scope.row.noticeStatus) {
68 case '1':
69 return <div>
70 <el-button type="text" icon="el-icon-edit-outline" onClick={() => { vm.toPublish(scope.row) }}>发布</el-button>
71 <el-button type="text" onClick={() => { vm.viewDetail(scope.row) }}>查看</el-button>
72 <el-button type="text" icon="el-icon-delete" onClick={() => { vm.delNotice(scope.row) }}>删除</el-button>
73 </div>
74 case '2':
75 return <div>
76 <el-button type="text" onClick={() => { vm.viewDetail(scope.row) }}>查看</el-button>
77 <el-button type="text" icon="el-icon-edit-outline" onClick={() => { vm.toUnPublish(scope.row) }}>取消发布</el-button>
78 </div>
79 }
80 }
81 }
82 ]
83 }
84
85 ywlys () {
86 return [
87 { value: 1, label: "办事大厅" },
88 { value: 2, label: "微信小程序" },
89 { value: 3, label: "法院端" },
90 { value: 4, label: "银行端" },
91 ]
92 }
93
94 }
95 let datas = new data()
96 export {
97 datas,
98 sendThis
99 }
...@@ -138,7 +138,8 @@ export default { ...@@ -138,7 +138,8 @@ export default {
138 }, 138 },
139 methods: { 139 methods: {
140 updateDetail (value) { 140 updateDetail (value) {
141 this.tableDataList[this.dataIndex] = value 141 this.tableDataList[this.dataIndex] = value;
142 console.log(this.tableDataList);
142 this.key++ 143 this.key++
143 this.$emit('upDateQlrxxList', this.tableDataList) 144 this.$emit('upDateQlrxxList', this.tableDataList)
144 }, 145 },
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
4 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px"> 4 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px">
5 <el-row> 5 <el-row>
6 <el-col :span="8"> 6 <el-col :span="8">
7 <el-form-item label="权利人类型" prop="qlrlx"> 7 <el-form-item label="权利人类型" prop="sqrlx">
8 <el-select clearable v-model="ruleForm.sqrlx" class="width100" placeholder="请选择"> 8 <el-select clearable v-model="ruleForm.sqrlx" class="width100" placeholder="请选择">
9 <el-option v-for="item in dictData['A36']" :key="item.dcode" :label="item.dname" :value="item.dcode"> 9 <el-option v-for="item in dictData['A36']" :key="item.dcode" :label="item.dname" :value="item.dcode">
10 </el-option> 10 </el-option>
...@@ -151,7 +151,7 @@ export default { ...@@ -151,7 +151,7 @@ export default {
151 return { 151 return {
152 myValue: this.value, 152 myValue: this.value,
153 ruleForm: { 153 ruleForm: {
154 qlrlx: '', 154 sqrlx: '',
155 sqrmc: '', 155 sqrmc: '',
156 zjzl: '', 156 zjzl: '',
157 zjh: '', 157 zjh: '',
...@@ -172,7 +172,7 @@ export default { ...@@ -172,7 +172,7 @@ export default {
172 dlrzjh: '' 172 dlrzjh: ''
173 }, 173 },
174 rules: { 174 rules: {
175 qlrlx: [ 175 sqrlx: [
176 { required: true, message: '权利人类型', trigger: 'change' } 176 { required: true, message: '权利人类型', trigger: 'change' }
177 ], 177 ],
178 sqrmc: [ 178 sqrmc: [
......
...@@ -46,6 +46,10 @@ ...@@ -46,6 +46,10 @@
46 </el-form-item> 46 </el-form-item>
47 </el-col> 47 </el-col>
48 </el-row> 48 </el-row>
49 <el-row style="text-align:center">
50 <el-button type="primary" @click="onSubmit">确定</el-button>
51 <el-button>取消</el-button>
52 </el-row>
49 </el-form> 53 </el-form>
50 </div> 54 </div>
51 </template> 55 </template>
...@@ -97,10 +101,13 @@ export default { ...@@ -97,10 +101,13 @@ export default {
97 this.loadGrid(); 101 this.loadGrid();
98 }, 102 },
99 methods: { 103 methods: {
104 onSubmit () {
105
106 },
100 fetchData () { }, 107 fetchData () { },
101 //列表初始化 108 //列表初始化
102 loadGrid () { 109 loadGrid () {
103 getUnclaimedBdcqz({bsmSlsq:this.formData.bsmSlsq}).then(res => { 110 getUnclaimedBdcqz({ bsmSlsq: this.formData.bsmSlsq }).then(res => {
104 if (res.code === 200) { 111 if (res.code === 200) {
105 this.tableData.data = res.result; 112 this.tableData.data = res.result;
106 } 113 }
......
...@@ -2,7 +2,8 @@ export default { ...@@ -2,7 +2,8 @@ export default {
2 data () { 2 data () {
3 return { 3 return {
4 isSearch: false, 4 isSearch: false,
5 searchList: [] 5 searchList: [],
6 otherForm: {}
6 } 7 }
7 }, 8 },
8 methods: { 9 methods: {
...@@ -10,14 +11,24 @@ export default { ...@@ -10,14 +11,24 @@ export default {
10 this.isSearch = true 11 this.isSearch = true
11 }, 12 },
12 getSearch (val) { 13 getSearch (val) {
14 console.log(val, 222222222222);
15 this.otherForm = val
13 let obj = { ywlymc: '业务来源', qllxmc: '权利类型', djlxmc: '登记类型', ywh: '业务号', sqywmc: '申请业务名称', qlrmc: '权利人', ywrmc: '义务人', slsj: '受理时间' } 16 let obj = { ywlymc: '业务来源', qllxmc: '权利类型', djlxmc: '登记类型', ywh: '业务号', sqywmc: '申请业务名称', qlrmc: '权利人', ywrmc: '义务人', slsj: '受理时间' }
14 this.searchList = Object.entries(val).map((item) => { 17 this.searchList = Object.entries({ ...this.searchForm, ...val }).map((item) => {
15 const [name, value] = item 18 const [name, value] = item
16 if (value) return { name: obj[name], value } 19 if (value) return { name: obj[name], value }
17 }).filter(Boolean) 20 }).filter(Boolean)
18 }, 21 },
19 hanldeCleanAll () { 22 hanldeCleanAll () {
23 this.searchForm = {}
24 this.queryForm = {
25 ywly: "",
26 qllx: "",
27 djlx: "",
28 ywh: ""
29 }
20 this.searchList = [] 30 this.searchList = []
31 this.queryClick()
21 } 32 }
22 } 33 }
23 } 34 }
......
...@@ -71,8 +71,9 @@ export default { ...@@ -71,8 +71,9 @@ export default {
71 }, 71 },
72 submitForm () { 72 submitForm () {
73 this.$emit('getSearch', this.ruleForm) 73 this.$emit('getSearch', this.ruleForm)
74 this.$refs['ruleForm'].resetFields() 74 console.log(this.ruleForm);
75 this.$emit('input', false) 75 this.$emit('input', false)
76 this.$refs['ruleForm'].resetFields()
76 } 77 }
77 } 78 }
78 } 79 }
......
...@@ -5,7 +5,8 @@ ...@@ -5,7 +5,8 @@
5 <el-row> 5 <el-row>
6 <el-col :span="5"> 6 <el-col :span="5">
7 <el-form-item label="业务来源"> 7 <el-form-item label="业务来源">
8 <el-select v-model="queryForm.ywly" class="width100" filterable clearable placeholder="请选择业务来源"> 8 <el-select v-model="queryForm.ywly" class="width100" filterable
9 @change="handleSelect('ywly', 'ywlymc', 'ywly')" clearable placeholder="请选择业务来源">
9 <el-option v-for="item in dictData['ywly']" :key="item.dcode" :label="item.dname" :value="item.dcode"> 10 <el-option v-for="item in dictData['ywly']" :key="item.dcode" :label="item.dname" :value="item.dcode">
10 </el-option> 11 </el-option>
11 </el-select> 12 </el-select>
...@@ -13,7 +14,8 @@ ...@@ -13,7 +14,8 @@
13 </el-col> 14 </el-col>
14 <el-col :span="5"> 15 <el-col :span="5">
15 <el-form-item label="权利类型"> 16 <el-form-item label="权利类型">
16 <el-select v-model="queryForm.qllx" class="width100" filterable clearable placeholder="请选择权利类型"> 17 <el-select v-model="queryForm.qllx" class="width100" @change="handleSelect('A8', 'qllxmc', 'qllx')"
18 filterable clearable placeholder="请选择权利类型">
17 <el-option v-for="item in dictData['A8']" :key="item.dcode" :label="item.dname" :value="item.dcode"> 19 <el-option v-for="item in dictData['A8']" :key="item.dcode" :label="item.dname" :value="item.dcode">
18 </el-option> 20 </el-option>
19 </el-select> 21 </el-select>
...@@ -21,7 +23,8 @@ ...@@ -21,7 +23,8 @@
21 </el-col> 23 </el-col>
22 <el-col :span="5"> 24 <el-col :span="5">
23 <el-form-item label="登记类型"> 25 <el-form-item label="登记类型">
24 <el-select v-model="queryForm.djlx" class="width100" filterable clearable placeholder="请选择登记类型"> 26 <el-select v-model="queryForm.djlx" class="width100" @change="handleSelect('A21', 'djlxmc', 'djlx')"
27 filterable clearable placeholder="请选择登记类型">
25 <el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode"> 28 <el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode">
26 </el-option> 29 </el-option>
27 </el-select> 30 </el-select>
...@@ -86,6 +89,12 @@ export default { ...@@ -86,6 +89,12 @@ export default {
86 djlx: "", 89 djlx: "",
87 ywh: "", 90 ywh: "",
88 }, 91 },
92 searchForm: {
93 ywlymc: '',
94 qllxmc: '',
95 djlxmc: '',
96 ywh: ''
97 },
89 tableData: { 98 tableData: {
90 total: 0, 99 total: 0,
91 columns: datas.columns(), 100 columns: datas.columns(),
...@@ -105,9 +114,19 @@ export default { ...@@ -105,9 +114,19 @@ export default {
105 } 114 }
106 }, 115 },
107 methods: { 116 methods: {
117 handleSelect (bs, mc, code) {
118 let that = this
119 this.dictData[bs].forEach(item => {
120 if (item.dcode == this.queryForm[code]) {
121 this.searchForm[mc] = item.dname
122 }
123 })
124 },
108 // 列表渲染接口 125 // 列表渲染接口
109 queryClick () { 126 queryClick () {
110 this.$startLoading() 127 this.$startLoading()
128 this.searchForm.ywh = this.queryForm.ywh
129 this.getSearch()
111 searchTaskToDo({ ...this.queryForm, ...this.pageData }).then(res => { 130 searchTaskToDo({ ...this.queryForm, ...this.pageData }).then(res => {
112 this.$endLoading() 131 this.$endLoading()
113 if (res.code === 200) { 132 if (res.code === 200) {
...@@ -125,8 +144,8 @@ export default { ...@@ -125,8 +144,8 @@ export default {
125 } 144 }
126 }) 145 })
127 }, 146 },
147
128 handelItem (index) { 148 handelItem (index) {
129 console.log(index);
130 this.searchList.splice(index, 1) 149 this.searchList.splice(index, 1)
131 }, 150 },
132 handleSort (val) { 151 handleSort (val) {
......
...@@ -145,7 +145,7 @@ ...@@ -145,7 +145,7 @@
145 </el-form-item> 145 </el-form-item>
146 </el-col> 146 </el-col>
147 </el-row> 147 </el-row>
148 <InformationTable :tableData="ruleForm.qlrList" :viewtype="$route.query.viewtype" :gyfs="ruleForm.slywxx.gyfs" /> 148 <InformationTable :tableData="ruleForm.qlrList" @upDateQlrxxList='upDateQlrxxList' :viewtype="$route.query.viewtype" :gyfs="ruleForm.slywxx.gyfs" />
149 <div class="slxx_title title-block"> 149 <div class="slxx_title title-block">
150 登记原因 150 登记原因
151 <div class="triangle"></div> 151 <div class="triangle"></div>
......
...@@ -82,6 +82,9 @@ export default { ...@@ -82,6 +82,9 @@ export default {
82 closeDialog () { 82 closeDialog () {
83 this.$emit("closeDialog"); 83 this.$emit("closeDialog");
84 }, 84 },
85 queryClick () {
86 this.fetchData()
87 },
85 fetchData () { 88 fetchData () {
86 this.queryForm.sqywbm = this.djywbm; 89 this.queryForm.sqywbm = this.djywbm;
87 selectZdjbxx({ ...this.queryForm, ...this.pageData }).then((res) => { 90 selectZdjbxx({ ...this.queryForm, ...this.pageData }).then((res) => {
......