8673b94d1dcd5275bbb315c7a8eaeb8cee62a78c.svn-base 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  1. <template>
  2. <el-container class="monthReport">
  3. <el-card class="box-card">
  4. <h2 class="title_monthReport">通知公告管理</h2>
  5. <el-form :inline="true" size="small" class="demo-form-inline" label-width="50px">
  6. <el-form-item label="标题">
  7. <el-input v-model="searchForm.title" placeholder="请输入" clearable></el-input>
  8. </el-form-item>
  9. <el-form-item>
  10. <el-button type="primary" size="mini" @click="searchBtn">查询</el-button>
  11. <el-button type="primary" size="mini" @click="addBtn" v-if="ownPriv('manage')">添加</el-button>
  12. </el-form-item>
  13. </el-form>
  14. <div>
  15. <el-table
  16. border
  17. ref="multipleTable"
  18. :height="tableHeight"
  19. :data="tableData"
  20. tooltip-effect="dark"
  21. style="width: 100%"
  22. v-loading="loading">
  23. <el-table-column
  24. header-align="center"
  25. align="center"
  26. prop="ordr"
  27. label="显示顺序"
  28. width="100"
  29. show-overflow-tooltip
  30. ></el-table-column>
  31. <el-table-column
  32. header-align="center"
  33. align="center"
  34. prop="title"
  35. label="标题"
  36. show-overflow-tooltip
  37. ></el-table-column>
  38. <el-table-column
  39. header-align="center"
  40. align="center"
  41. prop="des"
  42. label="内容"
  43. show-overflow-tooltip
  44. ></el-table-column>
  45. <el-table-column
  46. header-align="center"
  47. align="center"
  48. prop="persNm"
  49. width="120"
  50. label="创建人"
  51. show-overflow-tooltip
  52. ></el-table-column>
  53. <el-table-column
  54. header-align="center"
  55. align="center"
  56. prop="pubDep"
  57. width="120"
  58. label="发布单位"
  59. show-overflow-tooltip
  60. ></el-table-column>
  61. <el-table-column
  62. header-align="center"
  63. align="center"
  64. prop="intm"
  65. width="120"
  66. :formatter="formatDate"
  67. label="创建时间"
  68. show-overflow-tooltip
  69. ></el-table-column>
  70. <el-table-column
  71. header-align="center"
  72. align="center"
  73. prop="uptm"
  74. width="120"
  75. :formatter="formatDate"
  76. label="更新时间"
  77. show-overflow-tooltip
  78. ></el-table-column>
  79. <el-table-column
  80. align="center"
  81. width="220"
  82. v-if="ownPriv('manage')"
  83. label="操作"
  84. fixed="right">
  85. <template slot-scope="scope">
  86. <el-button type="success" size="mini" @click.stop="edit(scope.row)">编辑</el-button>
  87. <el-button type="danger" size="mini" @click.stop="deleteData(scope.row.id)">删除</el-button>
  88. </template>
  89. </el-table-column>
  90. </el-table>
  91. <el-pagination
  92. style="margin: 10px auto"
  93. background
  94. :pager-count="5"
  95. :current-page="pageNum"
  96. :page-size="pageSize"
  97. :page-sizes="[10, 20, 30, 40, 50, 100]"
  98. layout="sizes, total, prev, pager, next"
  99. :total="total"
  100. @current-change="handleCurrentChange"
  101. ></el-pagination>
  102. </div>
  103. </el-card>
  104. <el-dialog
  105. class="outerDialog custom_dialog"
  106. :title="dialogT"
  107. width="50%"
  108. @close="closeAddDialog"
  109. :visible.sync="addDialogVisible">
  110. <div style="width: 100%;height:100%;">
  111. <el-form ref="addForm" label-width="100px">
  112. <el-form-item label="序号" required>
  113. <el-input v-model="addForm.ordr" placeholder="请输入"></el-input>
  114. </el-form-item>
  115. <el-form-item label="标题" required>
  116. <el-input v-model="addForm.title" placeholder="请输入"></el-input>
  117. </el-form-item>
  118. <el-form-item label="发布单位" required>
  119. <el-input v-model="addForm.pubDep" placeholder="请输入"></el-input>
  120. </el-form-item>
  121. <el-form-item label="内容" required>
  122. <Tinymce :value="content" @input="newContent" v-if="addDialogVisible"></Tinymce>
  123. </el-form-item>
  124. <el-form-item style="text-align: center">
  125. <el-button type="primary" @click="addSubmit" style="margin-bottom: 30px;">确定</el-button>
  126. </el-form-item>
  127. </el-form>
  128. </div>
  129. </el-dialog>
  130. </el-container>
  131. </template>
  132. <script>
  133. import Tinymce from '../../widgets/tinymce/tinymce'
  134. import request from '@util/gw_ajax_request'
  135. export default {
  136. name: "",
  137. props: [],
  138. data() {
  139. return {
  140. dialogT:"",
  141. addDialogVisible:false,
  142. tableHeight:window.innerHeight-300,
  143. tableData:[],
  144. loading:false,
  145. pageNum:1,
  146. pageSize:10,
  147. total:0,
  148. searchForm:{
  149. title:""
  150. },
  151. YM:"",
  152. orgIdDefault:"",
  153. addForm:{
  154. ordr:"",
  155. title:"",
  156. pubDep:"",
  157. des:""
  158. },
  159. content:""
  160. }
  161. },
  162. components: {
  163. Tinymce
  164. },
  165. computed: {
  166. persId() {
  167. return localStorage.getItem("userid")
  168. ? localStorage.getItem("userid")
  169. : "1098101939614724096";
  170. },
  171. orgId() {
  172. return localStorage.getItem('currentOrgId') ? localStorage.getItem("currentOrgId") : "";
  173. },
  174. organCode() {
  175. return localStorage.getItem('currentRlcode') ? localStorage.getItem('currentRlcode') : ''
  176. },
  177. },
  178. mounted() {
  179. this.initTableData();
  180. },
  181. methods: {
  182. newContent(val){
  183. //debugger
  184. this.$set(this.addForm,"des",val);
  185. },
  186. formatDate(row,column){
  187. var date = row[column.property];
  188. if(date==null || date==""){
  189. return "";
  190. }
  191. var date = new Date(date);
  192. return date.getFullYear()+"-"+((date.getMonth()+1)>9?date.getMonth()+1:"0"+(date.getMonth()+1))+"-"+(date.getDate()>9?date.getDate():"0"+date.getDate());
  193. },
  194. deleteData(id){
  195. var _self = this;
  196. this.$confirm('确定删除该条数据吗, 是否继续?', '提示', {
  197. confirmButtonText: '确定',
  198. cancelButtonText: '取消',
  199. type: 'warning'
  200. }).then(() => {
  201. request.post('/bis/insp/news/delete/'+id).then(res=>{
  202. if(res.success){
  203. _self.initTableData();
  204. }else{
  205. _self.$message.warning(res.message);
  206. }
  207. })
  208. }).catch(() => {
  209. this.$message({
  210. type: 'info',
  211. message: '已取消删除'
  212. });
  213. });
  214. },
  215. edit(row){
  216. var obj = JSON.stringify(row);
  217. this.addDialogVisible = true;
  218. this.addForm = JSON.parse(obj);
  219. this.content = this.addForm.des;
  220. this.dialogT = "编辑";
  221. },
  222. addSubmit(){
  223. if(!this.addForm.ordr){
  224. this.$message.warning("请输入序号");
  225. return;
  226. }
  227. if(!/^[1-9]\d*$/.test(this.addForm.ordr)){
  228. this.$message.warning("请输入大于0的正整数");
  229. return;
  230. }
  231. if(!this.addForm.title){
  232. this.$message.warning("请输入标题");
  233. return;
  234. }
  235. if(!this.addForm.pubDep){
  236. this.$message.warning("请输入发布单位");
  237. return;
  238. }
  239. if(!this.addForm.des){
  240. this.$message.warning("请输入内容");
  241. return;
  242. }
  243. this.addForm.app = localStorage.getItem("ownApp");
  244. var _self = this;
  245. request.post('/bis/insp/news',this.addForm).then(res=>{
  246. if(res.success){
  247. _self.$message.success("保存成功");
  248. _self.addDialogVisible = false;
  249. _self.addForm = {};
  250. _self.initTableData();
  251. }else{
  252. _self.$message.warning(res.message);
  253. }
  254. })
  255. },
  256. selectOrgChange(data){
  257. this.addForm.unitName = data.name;
  258. },
  259. clearRecv(){
  260. this.addForm.unitName = "";
  261. },
  262. closeAddDialog(){
  263. this.addDialogVisible = false;
  264. },
  265. initTableData(){
  266. this.searchForm.pageNum = this.pageNum;
  267. this.searchForm.pageSize = this.pageSize;
  268. this.searchForm.persId = this.persId;
  269. this.searchForm.app = localStorage.getItem("ownApp");
  270. this.loading = true;
  271. var _self = this;
  272. request.post('/bis/insp/news/findPage',this.searchForm).then(res=>{
  273. if(res.success){
  274. _self.tableData = res.data.list;
  275. _self.total = res.data.total;
  276. _self.loading = false;
  277. }else{
  278. _self.$message.warning(res.message)
  279. }
  280. })
  281. },
  282. handleCurrentChange(val){
  283. this.pageNum = val;
  284. this.initTableData();
  285. },
  286. searchBtn(){
  287. this.initTableData();
  288. },
  289. addBtn(){
  290. this.addForm = {};
  291. this.addDialogVisible = true;
  292. this.content = "";
  293. this.dialogT = "添加"
  294. }
  295. }
  296. }
  297. </script>
  298. <style lang="scss" scoped>
  299. .monthReport /deep/.tox-menu{
  300. z-index: 2300!important;
  301. }
  302. .monthReport{
  303. width: 100%;
  304. height:100%;
  305. margin: 0;
  306. padding: 0;
  307. }
  308. .box-card{
  309. width: calc(100% - 60px);
  310. height:calc(100% - 20px);
  311. margin: 0 auto;
  312. margin-top: 10px;
  313. }
  314. .title_monthReport{
  315. text-align: center;
  316. padding: 10px;
  317. }
  318. .note_monthReport{
  319. width: 100%;
  320. background-color: rgba(255, 251, 230, 1);
  321. box-sizing: border-box;
  322. border-width: 1px;
  323. border-style: solid;
  324. border-color: rgba(255, 229, 143, 1);
  325. color: rgba(0, 0, 0, 0.447058823529412);
  326. font-size: 14px;
  327. padding: 10px;
  328. }
  329. .note_monthReport p:first-child{
  330. font-size: 16px !important;
  331. }
  332. .monthReport{
  333. .demo-form-inline{
  334. .el-form-item{
  335. margin-bottom: 5px;
  336. margin-top: 8px;
  337. }
  338. }
  339. }
  340. </style>