SubmissionList.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  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.verificatePerson"></a-input> -->
  10. <j-dict-select-tag v-model="queryParam.verificatePerson" placeholder="请选择负责人" dictCode="sys_user,realname,username"/>
  11. </a-form-item>
  12. </a-col>
  13. <a-col :xl="6" :lg="7" :md="8" :sm="24">
  14. <a-form-item label="送检编号">
  15. <a-input placeholder="请输入送检编号" v-model="queryParam.sjcode"></a-input>
  16. </a-form-item>
  17. </a-col>
  18. <template v-if="toggleSearchStatus">
  19. <a-col :xl="6" :lg="7" :md="8" :sm="24">
  20. <a-form-item label="检定方式">
  21. <j-dict-select-tag placeholder="请选择检定方式" v-model="queryParam.verificateMethod" dictCode="verificate_method"/>
  22. </a-form-item>
  23. </a-col>
  24. <a-col :xl="6" :lg="7" :md="8" :sm="24">
  25. <a-form-item label="检定单位">
  26. <j-search-select-tag placeholder="请选择检定单位" v-model="queryParam.verificateClientId" dict="base_client,client_name,id"/>
  27. </a-form-item>
  28. </a-col>
  29. </template>
  30. <a-col :xl="6" :lg="7" :md="8" :sm="24">
  31. <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
  32. <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
  33. <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
  34. <a @click="handleToggleSearch" style="margin-left: 8px">
  35. {{ toggleSearchStatus ? '收起' : '展开' }}
  36. <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
  37. </a>
  38. </span>
  39. </a-col>
  40. </a-row>
  41. </a-form>
  42. </div>
  43. <!-- 查询区域-END -->
  44. <!-- 操作按钮区域 -->
  45. <div class="table-operator">
  46. <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
  47. <!-- <a-button type="primary" icon="download" @click="handleExportXls('送检工单表')">导出</a-button>
  48. <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
  49. <a-button type="primary" icon="import">导入</a-button>
  50. </a-upload> -->
  51. <!-- 高级查询区域 -->
  52. <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> -->
  53. <a-dropdown v-if="selectedRowKeys.length > 0">
  54. <a-menu slot="overlay">
  55. <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
  56. </a-menu>
  57. <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
  58. </a-dropdown>
  59. </div>
  60. <!-- table区域-begin -->
  61. <div>
  62. <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
  63. <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
  64. <a style="margin-left: 24px" @click="onClearSelected">清空</a>
  65. </div>
  66. <a-table
  67. ref="table"
  68. size="middle"
  69. :scroll="{x:true}"
  70. bordered
  71. rowKey="id"
  72. :columns="columns"
  73. :dataSource="dataSource"
  74. :pagination="ipagination"
  75. :loading="loading"
  76. :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
  77. class="j-table-force-nowrap"
  78. @change="handleTableChange">
  79. <template slot="htmlSlot" slot-scope="text">
  80. <div v-html="text"></div>
  81. </template>
  82. <template slot="imgSlot" slot-scope="text,record">
  83. <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
  84. <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
  85. </template>
  86. <template slot="fileSlot" slot-scope="text">
  87. <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
  88. <a-button
  89. v-else
  90. :ghost="true"
  91. type="primary"
  92. icon="download"
  93. size="small"
  94. @click="downloadFile(text)">
  95. 下载
  96. </a-button>
  97. </template>
  98. <span slot="sjcode" slot-scope="text, record">
  99. <a @click="handleDetailXQ(record)">{{ record.sjcode}}</a>
  100. </span>
  101. <!-- 版本1:弹框(未做if判断) -->
  102. <!-- <span slot="submissionGdstatus_dictText" slot-scope="text, record">
  103. <a @click="statusEdit(record)">{{ record.submissionGdstatus_dictText}}</a>
  104. </span> -->
  105. <!-- 版本二(加if判断) -->
  106. <span slot="submissionGdstatus_dictText" slot-scope="text, record">
  107. <!-- <a @click="statusEdit(record)" v-if="record.submissionGdstatus != 2">{{ record.submissionGdstatus_dictText}}</a> -->
  108. <a-popconfirm v-if="record.submissionGdstatus != 2" :title="record.submissionGdstatus == 0 ? '确定将工单状态改为“进行中”吗':'确定将工单状态改为“已完成”吗'" @confirm="() => statusEdit(record)">
  109. <a>{{ record.submissionGdstatus_dictText}}</a>
  110. </a-popconfirm>
  111. <span v-if="record.submissionGdstatus == 2">{{ record.submissionGdstatus_dictText}}</span>
  112. </span>
  113. <span slot="action" slot-scope="text, record">
  114. <a @click="handleEdit(record)">编辑</a>
  115. <a-divider type="vertical" />
  116. <a @click="fankui(record)">反馈</a>
  117. <a-divider type="vertical" />
  118. <a-dropdown>
  119. <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
  120. <a-menu slot="overlay">
  121. <a-menu-item>
  122. <a @click="handleDetail(record)">详情</a>
  123. </a-menu-item>
  124. <a-menu-item>
  125. <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
  126. <a>删除</a>
  127. </a-popconfirm>
  128. </a-menu-item>
  129. </a-menu>
  130. </a-dropdown>
  131. </span>
  132. </a-table>
  133. </div>
  134. <cmms-submission-modal ref="modalForm" @ok="modalFormOk"></cmms-submission-modal>
  135. <SubmissionEquipmentModalFK ref="modalFormFK" @ok="modalFormOk"> </SubmissionEquipmentModalFK>
  136. <edit-status-modal ref="modalFormEdit" @ok="modalFormOk"></edit-status-modal>
  137. <handle-detail-xq ref="modalFormXq"></handle-detail-xq>
  138. </a-card>
  139. </template>
  140. <script>
  141. import '@/assets/less/TableExpand.less'
  142. import { mixinDevice } from '@/utils/mixin'
  143. import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  144. import { httpAction, getAction } from '@/api/manage'
  145. import CmmsSubmissionModal from './modules/SubmissionModal'
  146. import SubmissionEquipmentModalFK from "./modulesFK/SubmissionEquipmentModalFK.vue";
  147. import EditStatusModal from './modules/editStatusModal.vue'
  148. import HandleDetailXq from './modules/handleDetailXq.vue'
  149. export default {
  150. name: 'CmmsSubmissionList',
  151. mixins:[JeecgListMixin, mixinDevice],
  152. components: {
  153. CmmsSubmissionModal,
  154. SubmissionEquipmentModalFK,
  155. EditStatusModal,
  156. HandleDetailXq,
  157. },
  158. data () {
  159. return {
  160. description: '送检工单表管理页面',
  161. // 表头
  162. columns: [
  163. {
  164. title: '#',
  165. dataIndex: '',
  166. key:'rowIndex',
  167. width:60,
  168. align:"center",
  169. customRender:function (t,r,index) {
  170. return parseInt(index)+1;
  171. }
  172. },
  173. {
  174. title:'送检编号',
  175. align:"center",
  176. dataIndex: 'sjcode',
  177. scopedSlots: { customRender: 'sjcode' }
  178. },
  179. {
  180. title:'送检负责人',
  181. align:"center",
  182. dataIndex: 'verificatePerson_dictText'
  183. },
  184. {
  185. title:'检定方式',
  186. align:"center",
  187. dataIndex: 'verificateMethod_dictText'
  188. },
  189. {
  190. title:'检定单位',
  191. align:"center",
  192. dataIndex: 'verificateClientId_dictText'
  193. },
  194. {
  195. title:'送检设备数量',
  196. align:"center",
  197. dataIndex: 'totalNum'
  198. },
  199. {
  200. title:'返回设备数量',
  201. align:"center",
  202. dataIndex: 'returnNum'
  203. },
  204. {
  205. title:'备注',
  206. align:"center",
  207. dataIndex: 'remark'
  208. },
  209. {
  210. title:'送检工单状态',
  211. align:"center",
  212. dataIndex: 'submissionGdstatus_dictText',
  213. scopedSlots: { customRender: 'submissionGdstatus_dictText' }
  214. },
  215. {
  216. title: '操作',
  217. dataIndex: 'action',
  218. align:"center",
  219. fixed:"right",
  220. width:147,
  221. scopedSlots: { customRender: 'action' }
  222. }
  223. ],
  224. url: {
  225. list: "/cmmsSubmission/cmmsSubmission/list",
  226. delete: "/cmmsSubmission/cmmsSubmission/delete",
  227. deleteBatch: "/cmmsSubmission/cmmsSubmission/deleteBatch",
  228. exportXlsUrl: "/cmmsSubmission/cmmsSubmission/exportXls",
  229. importExcelUrl: "cmmsSubmission/cmmsSubmission/importExcel",
  230. editStatus: "/cmmsSubmission/cmmsSubmission/editSJStatus"
  231. },
  232. dictOptions:{},
  233. superFieldList:[],
  234. model: {}
  235. }
  236. },
  237. created() {
  238. this.getSuperFieldList();
  239. },
  240. computed: {
  241. importExcelUrl: function(){
  242. return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
  243. },
  244. },
  245. methods: {
  246. initDictConfig(){
  247. },
  248. getSuperFieldList(){
  249. let fieldList=[];
  250. fieldList.push({type:'string',value:'verificatePerson',text:'送检负责人',dictCode:''})
  251. fieldList.push({type:'string',value:'verificateMethod',text:'检定方式',dictCode:'verificate_method'})
  252. fieldList.push({type:'sel_search',value:'verificateClientId',text:'检定单位',dictTable:"base_client", dictText:'client_name', dictCode:'id'})
  253. fieldList.push({type:'string',value:'totalNum',text:'送检设备数量',dictCode:''})
  254. fieldList.push({type:'string',value:'returnNum',text:'返回设备数量',dictCode:''})
  255. fieldList.push({type:'string',value:'remark',text:'备注',dictCode:''})
  256. this.superFieldList = fieldList
  257. },
  258. fankui(record) {
  259. this.$refs.modalFormFK.title = "送检信息反馈";
  260. this.$refs.modalFormFK.disableSubmit = false;
  261. this.$refs.modalFormFK.fankui(record.id);
  262. },
  263. // 修改工单状态
  264. statusEdit(record){
  265. // 版本1:弹框
  266. // this.$refs.modalFormEdit.title = "修改工单状态";
  267. // this.$refs.modalFormEdit.disableSubmit = false;
  268. // this.$refs.modalFormEdit.edit(record.id);
  269. // 版本2:按钮直接进行下一步状态
  270. console.log(record.submissionGdstatus)
  271. let httpurl = '';
  272. let method = '';
  273. httpurl+=this.url.editStatus;
  274. method = 'put';
  275. if (record.submissionGdstatus == 0) {
  276. this.model = {
  277. id: record.id,
  278. submissionGdstatus : "1",
  279. }
  280. }
  281. if (record.submissionGdstatus == 1) {
  282. this.model = {
  283. id: record.id,
  284. submissionGdstatus : "2",
  285. }
  286. }
  287. httpAction(httpurl,this.model,method).then((res)=>{
  288. if(res.success){
  289. this.$message.success(res.message);
  290. this.modalFormOk()
  291. }else{
  292. this.$message.warning(res.message);
  293. this.modalFormOk()
  294. }
  295. })
  296. },
  297. handleDetailXQ(record){
  298. this.$refs.modalFormXq.title = "送检信息详情";
  299. this.$refs.modalFormXq.disableSubmit = false;
  300. this.$refs.modalFormXq.findHandle(record.id);
  301. }
  302. }
  303. }
  304. </script>
  305. <style scoped>
  306. @import '~@assets/less/common.less';
  307. </style>