303e08bceb27ae66745f3cecbade285782a010f0.svn-base 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442
  1. <template>
  2. <a-card :bordered="false">
  3. <!-- 查询区域 -->
  4. <div class="table-page-search-wrapper">
  5. <a-form layout="inline" @keyup.enter.native="searchQuery">
  6. <a-row :gutter="24">
  7. <a-col :xl="6" :lg="7" :md="8" :sm="24">
  8. <a-form-item label="项目名称">
  9. <a-input placeholder="请输入项目名称" v-model="queryParam.xmmc" ></a-input>
  10. </a-form-item>
  11. </a-col>
  12. <a-col :xl="6" :lg="7" :md="8" :sm="24">
  13. <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
  14. <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
  15. <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
  16. <!-- <a @click="handleToggleSearch" style="margin-left: 8px">-->
  17. <!-- {{ toggleSearchStatus ? '收起' : '展开' }}-->
  18. <!-- <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>-->
  19. <!-- </a>-->
  20. </span>
  21. </a-col>
  22. </a-row>
  23. </a-form>
  24. </div>
  25. <!-- 查询区域-END -->
  26. <!-- 操作按钮区域 -->
  27. <a-table
  28. ref="table"
  29. size="middle"
  30. bordered
  31. rowKey="id"
  32. class="j-table-force-nowrap"
  33. :scroll="{x:true}"
  34. :columns="columns"
  35. :dataSource="dataSource"
  36. :pagination="ipagination"
  37. :loading="loading"
  38. :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type:'radio'}"
  39. :customRow="clickThenSelect"
  40. @change="handleTableChange">
  41. <template slot="xmmc" slot-scope="text,record">
  42. <a @click="handleDetail(record)">{{ text }}</a>
  43. </template>
  44. <template slot="htmlSlot" slot-scope="text">
  45. <div v-html="text"></div>
  46. </template>
  47. <template slot="imgSlot" slot-scope="text">
  48. <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
  49. <img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
  50. </template>
  51. <template slot="fileSlot" slot-scope="text">
  52. <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
  53. <a-button
  54. v-else
  55. :ghost="true"
  56. type="primary"
  57. icon="download"
  58. size="small"
  59. @click="downloadFile(text)">
  60. 下载
  61. </a-button>
  62. </template>
  63. <!-- <template slot="fileSlot" slot-scope="text">-->
  64. <!-- <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>-->
  65. <!-- <a-space v-else>-->
  66. <!-- <a-button-->
  67. <!-- v-if="text.endsWith('.pdf')"-->
  68. <!-- :ghost="true"-->
  69. <!-- type="primary"-->
  70. <!-- icon="eye"-->
  71. <!-- size="small"-->
  72. <!-- @click="previewPdfFile(text)">-->
  73. <!-- 预览-->
  74. <!-- </a-button>-->
  75. <!-- <a-button-->
  76. <!-- v-else-if="text.endsWith('.png')||text.endsWith('.jpg')||text.endsWith('.bmp')"-->
  77. <!-- :ghost="true"-->
  78. <!-- type="primary"-->
  79. <!-- icon="eye"-->
  80. <!-- size="small"-->
  81. <!-- @click="previewImgFile(text)">-->
  82. <!-- 预览-->
  83. <!-- </a-button>-->
  84. <!-- <a-button-->
  85. <!-- :ghost="true"-->
  86. <!-- type="primary"-->
  87. <!-- icon="download"-->
  88. <!-- size="small"-->
  89. <!-- @click="downloadFile(text)">-->
  90. <!-- 下载-->
  91. <!-- </a-button>-->
  92. <!-- <a-modal width="1200px" :visible="previewVisible" :footer="null" @cancel="handleCancel()">-->
  93. <!-- <img alt="example" style="width: 100%" :src="previewImage"/>-->
  94. <!-- </a-modal>-->
  95. <!-- </a-space>-->
  96. <!-- </template>-->
  97. <span slot="action" slot-scope="text, record">
  98. <a-space>
  99. <a-button size='small' v-show="record.readFlag!=1" @click="showConfirm(record)">接受</a-button>
  100. <a-button v-show="record.readFlag==1" @click="supervise()" size='small' type='primary'>监管</a-button>
  101. <a-button @click='handleDetail(record)' size='small' type='primary'>查看</a-button>
  102. </a-space>
  103. <!-- <span slot="action" slot-scope="text, record">-->
  104. <!-- <a @click="handleEdit(record)">编辑</a>-->
  105. <!-- <a-divider type="vertical" />-->
  106. <!-- <a-dropdown>-->
  107. <!-- <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>-->
  108. <!-- <a-menu slot="overlay">-->
  109. <!-- <a-menu-item>-->
  110. <!-- <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">-->
  111. <!-- <a>删除</a>-->
  112. <!-- </a-popconfirm>-->
  113. <!-- </a-menu-item>-->
  114. <!-- </a-menu>-->
  115. <!-- </a-dropdown>-->
  116. </span>
  117. </a-table>
  118. <a-modal width="1200px" :visible="previewVisible" :footer="null" @cancel="handleCancel()">
  119. <img alt="example" style="width: 100%" :src="previewImage"/>
  120. </a-modal>
  121. </div>
  122. <rmAxxmxx-modal ref="modalForm" @ok="modalFormOk"></rmAxxmxx-modal>
  123. <PushSelectUserModal ref="SelectUserForm" @selectFinished="selectFinished"></PushSelectUserModal>
  124. <RmXcjgjlModal ref="SelectSupervise" @ok="modalFormOk"></RmXcjgjlModal>
  125. </a-card>
  126. </template>
  127. <script>
  128. import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  129. import RmAxxmxxModal from './modules/RmAxxmxxModal'
  130. import { getAction } from '@/api/manage'
  131. import RmAxzyxmbList from './RmAxzyxmbList'
  132. import RmAxhdzyzbList from './RmAxhdzyzbList'
  133. import RmAxshbfgcxxbList from './RmAxshbfgcxxbList'
  134. import RmAxshgczyzbbList from './RmAxshgczyzbbList'
  135. import RmAxfxjszycgbList from './RmAxfxjszycgbList'
  136. import RmYxqkList from './RmYxqkList'
  137. import {initDictOptions,filterMultiDictText} from '@/components/dict/JDictSelectUtil'
  138. import '@/assets/less/TableExpand.less'
  139. import JYearPicker from "@comp/jeecg/JYearPicker";
  140. import PushSelectUserModal from "@views/system/modules/PushSelectUserModal";
  141. import {postAction} from "@/api/manage";
  142. import RmXcjgjlModal from "@views/hzz/shjsgc/xcjgjl/modules/RmXcjgjlModal";
  143. export default {
  144. name: "RmAxxmxxList",
  145. mixins:[JeecgListMixin],
  146. components: {
  147. JYearPicker,
  148. RmAxzyxmbList,
  149. RmAxhdzyzbList,
  150. RmAxshbfgcxxbList,
  151. RmAxshgczyzbbList,
  152. RmAxfxjszycgbList,
  153. RmYxqkList,
  154. RmAxxmxxModal,
  155. PushSelectUserModal,
  156. RmXcjgjlModal
  157. },
  158. data () {
  159. return {
  160. description: '项目信息管理页面',
  161. visible:false,
  162. // 表头
  163. columns: [
  164. {
  165. title:'项目名称',
  166. align:"center",
  167. dataIndex: 'xmmc',
  168. scopedSlots: { customRender: 'xmmc'}
  169. },
  170. {
  171. title:'所在水系',
  172. align:"center",
  173. dataIndex: 'szsx_dictText',
  174. },
  175. // {
  176. // title:'横坐标',
  177. // align:"center",
  178. // dataIndex: 'hzb'
  179. // },
  180. // {
  181. // title:'纵坐标',
  182. // align:"center",
  183. // dataIndex: 'zzb'
  184. // },
  185. /* {
  186. title:'审批情况',
  187. align:"center",
  188. dataIndex: 'spzt_dictText',
  189. },*/
  190. {
  191. title:'建设状态',
  192. align:"center",
  193. dataIndex: 'jszt_dictText',
  194. },
  195. {
  196. title: '审批文号',
  197. align: "center",
  198. dataIndex: 'spwh',
  199. // scopedSlots: {customRender: 'fileSlot'}
  200. },
  201. {
  202. title:'填报人',
  203. align:"center",
  204. dataIndex: 'createBy'
  205. },
  206. {
  207. title:'填报时间',
  208. align:"center",
  209. dataIndex: 'createTime'
  210. },
  211. {
  212. title: '操作',
  213. dataIndex: 'action',
  214. align: "center",
  215. fixed: "right",
  216. width: 147,
  217. scopedSlots: {customRender: 'action'}
  218. },
  219. ],
  220. url: {
  221. list: "/engineeringpush/rmEngineeringpush/list",
  222. delete: "/hzz.shjsgc.xmrk/rmAxxmxx/delete",
  223. deleteBatch: "/hzz.shjsgc.xmrk/rmAxxmxx/deleteBatch",
  224. exportXlsUrl: "/hzz.shjsgc.xmrk/rmAxxmxx/exportXls",
  225. importExcelUrl: "hzz.shjsgc.xmrk/rmAxxmxx/importExcel",
  226. push:"/engineeringpush/rmEngineeringpush/add",
  227. accept:"/engineeringpush/rmEngineeringpush/accept"
  228. },
  229. param:{
  230. },
  231. dictOptions:{
  232. szsx:[],
  233. sfpjbf:[],
  234. sfbbsp:[],
  235. jszt:[],
  236. },
  237. previewVisible: false,
  238. previewImage: '',
  239. /* 分页参数 */
  240. ipagination:{
  241. current: 1,
  242. pageSize: 5,
  243. pageSizeOptions: ['5', '10', '50'],
  244. showTotal: (total, range) => {
  245. return range[0] + "-" + range[1] + " 共" + total + "条"
  246. },
  247. showQuickJumper: true,
  248. showSizeChanger: true,
  249. total: 0
  250. },
  251. selectedMainId:'',
  252. selectedXmmc:'',
  253. superFieldList:[],
  254. }
  255. },
  256. created() {
  257. this.getSuperFieldList();
  258. },
  259. computed: {
  260. importExcelUrl: function(){
  261. return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
  262. }
  263. },
  264. methods: {
  265. showConfirm(record) {
  266. var that= this
  267. this.$confirm({
  268. title: '确定接收该项目?',
  269. onOk() {
  270. that.handleOk(record)
  271. },
  272. onCancel() {
  273. console.log('Cancel');
  274. },
  275. class: 'test',
  276. });
  277. },
  278. supervise(){
  279. this.$refs.SelectSupervise.add()
  280. },
  281. pushNotification(record){
  282. this.$refs.SelectUserForm.selectedRowKeys=[]
  283. this.$refs.SelectUserForm.add()
  284. },
  285. handleOk(record){
  286. getAction(this.url.accept,{id:record.id}).then((res)=>{
  287. if(res.code==200){
  288. this.$message.success(res.message)
  289. this.loadData();
  290. this.visible = false;
  291. }else{
  292. this.$message.warning(res.message)
  293. }
  294. })
  295. },
  296. selectFinished(val){
  297. let userids=val.toString();
  298. let xmids=this.selectedRowKeys.toString()
  299. getAction(this.url.push,{xmid:xmids,userid:userids}).then((res)=>{
  300. if(res.code==200){
  301. this.$message.success(res.message)
  302. }
  303. })
  304. },
  305. initDictConfig(){
  306. initDictOptions('szsx').then((res) => {
  307. if (res.success) {
  308. this.$set(this.dictOptions, 'szsx', res.result)
  309. }
  310. })
  311. initDictOptions('yn').then((res) => {
  312. if (res.success) {
  313. this.$set(this.dictOptions, 'sfpjbf', res.result)
  314. }
  315. })
  316. initDictOptions('yn').then((res) => {
  317. if (res.success) {
  318. this.$set(this.dictOptions, 'sfbbsp', res.result)
  319. }
  320. })
  321. initDictOptions('gcjsqk').then((res) => {
  322. if (res.success) {
  323. this.$set(this.dictOptions, 'jszt', res.result)
  324. }
  325. })
  326. },
  327. clickThenSelect(record) {
  328. return {
  329. on: {
  330. click: () => {
  331. this.onSelectChange(record.id.split(","), [record]);
  332. }
  333. }
  334. }
  335. },
  336. onClearSelected() {
  337. this.selectedRowKeys = [];
  338. this.selectionRows = [];
  339. this.selectedMainId='';
  340. this.selectedXmmc='';
  341. },
  342. onSelectChange(selectedRowKeys, selectionRows) {
  343. this.selectedMainId=selectedRowKeys[0]
  344. this.selectedXmmc = selectionRows[0].xmmc;
  345. this.selectedRowKeys = selectedRowKeys;
  346. this.selectionRows = selectionRows;
  347. },
  348. loadData(arg) {
  349. if(!this.url.list){
  350. this.$message.error("请设置url.list属性!")
  351. return
  352. }
  353. //加载数据 若传入参数1则加载第一页的内容
  354. if (arg === 1) {
  355. this.ipagination.current = 1;
  356. }
  357. this.onClearSelected()
  358. var params = this.getQueryParams();//查询条件
  359. this.loading = true;
  360. getAction(this.url.list, params).then((res) => {
  361. if (res.success) {
  362. this.dataSource = res.result.records;
  363. this.ipagination.total = parseInt(res.result.total);
  364. }
  365. if(res.code===510){
  366. this.$message.warning(res.message)
  367. }
  368. this.loading = false;
  369. })
  370. },
  371. showModal(){
  372. this.visible = true;
  373. },
  374. getSuperFieldList(){
  375. let fieldList=[];
  376. fieldList.push({type:'string',value:'xmmc',text:'项目名称',dictCode:''})
  377. fieldList.push({type:'string',value:'szsx',text:'所在水系',dictCode:'szsx'})
  378. fieldList.push({type:'string',value:'xzqh',text:'行政区划',dictCode:''})
  379. fieldList.push({type:'string',value:'xjqhdm',text:'县级区划代码',dictCode:''})
  380. fieldList.push({type:'double',value:'hzb',text:'横坐标',dictCode:''})
  381. fieldList.push({type:'double',value:'zzb',text:'纵坐标',dictCode:''})
  382. fieldList.push({type:'string',value:'xmfzr',text:'项目负责人',dictCode:''})
  383. fieldList.push({type:'string',value:'dh',text:'电话',dictCode:''})
  384. fieldList.push({type:'string',value:'lxqk',text:'立项情况',dictCode:''})
  385. fieldList.push({type:'string',value:'spnd',text:'审批年度',dictCode:''})
  386. fieldList.push({type:'string',value:'fhbz',text:'防洪标准',dictCode:''})
  387. fieldList.push({type:'string',value:'spdw',text:'审批单位',dictCode:''})
  388. fieldList.push({type:'string',value:'spjb',text:'审批级别',dictCode:''})
  389. fieldList.push({type:'string',value:'sfpjbf',text:'是否批建不符',dictCode:'yn'})
  390. fieldList.push({type:'string',value:'sfbbsp',text:'是否补办审批',dictCode:'yn'})
  391. fieldList.push({type:'string',value:'ztbzjs',text:'总体布置简述',dictCode:''})
  392. fieldList.push({type:'string',value:'wjsc',text:'审批文件',dictCode:''})
  393. fieldList.push({type:'string',value:'jszt',text:'建设状态',dictCode:'gcjsqk'})
  394. fieldList.push({type:'string',value:'qt',text:'其他',dictCode:''})
  395. this.superFieldList = fieldList
  396. },
  397. previewImgFile(text){
  398. if (!text) {
  399. this.$message.warning("未知的文件")
  400. return;
  401. }
  402. this.previewImage = this.getImgView(text);
  403. this.previewVisible = true;
  404. },
  405. handleCancel() {
  406. this.previewVisible = false;
  407. },
  408. }
  409. }
  410. </script>
  411. <style >
  412. </style>
  413. <style scoped>
  414. @import '~@assets/less/common.less';
  415. </style>