audit-wb-selectproject.vue 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. <template>
  2. <div :class="$style.selectproject">
  3. <audit-advanced-query
  4. :expand="expand"
  5. :search-data="formData"
  6. :ref-name="searchform"
  7. :search-style="{ height: 'auto', left: '21px', top: '105px' }"
  8. :search-fun="handleSearch"
  9. @searchedClick="searchedClick"
  10. >
  11. <template>
  12. <a-col :span="12">
  13. <a-form-model-item :label="'项目名称'" prop="projectTitle">
  14. <a-input v-model="formData.projectTitle" allow-clear />
  15. </a-form-model-item>
  16. </a-col>
  17. <a-col :span="12">
  18. <a-form-model-item :label="'项目编号'" prop="projectCode">
  19. <a-input v-model="formData.projectCode" allow-clear />
  20. </a-form-model-item>
  21. </a-col>
  22. <!-- <a-col :span="8">
  23. <a-form-model-item label="年度" prop="year">
  24. <a-date-picker
  25. v-model="formData.year"
  26. mode="year"
  27. picker="YYYY"
  28. format="YYYY"
  29. :allow-clear="false"
  30. placeholder="选择年度"
  31. :input-read-only="true"
  32. :value="year"
  33. :open="endOpen"
  34. @panelChange="yearChange"
  35. @openChange="handleEndOpenChange"
  36. ></a-date-picker>
  37. </a-form-model-item>
  38. </a-col> -->
  39. </template>
  40. </audit-advanced-query>
  41. <!-- 列表 -->
  42. <sd-data-table-ex
  43. ref="WBDataTable"
  44. :show-advance-btn="true"
  45. form-id="iamExternalProject"
  46. page-id="audit/externalProject/iamExternalProject"
  47. :pagination="{ pageSize: 10 }"
  48. :filter-expressions="filterExpressions"
  49. :check-type="'radio'"
  50. :columns="columns"
  51. :show-advance-query="true"
  52. :search-fields="['projectTitle', 'inspectionOrg', 'inspectionType']"
  53. show-selection
  54. :process-res="processRes"
  55. :custom-row="
  56. (record, index) => {
  57. return {
  58. on: {
  59. dblclick: () => {
  60. fndblclick(record, index)
  61. },
  62. },
  63. }
  64. }
  65. "
  66. @searchbtnClick="searchbtnClick"
  67. @onChange="onChange"
  68. >
  69. </sd-data-table-ex>
  70. </div>
  71. </template>
  72. <script>
  73. import moment from 'moment'
  74. import auditAdvancedQueryMixins from '../../components/audit-advanced-query-mixins'
  75. import auditAdvancedQuery from '../../components/audit-advanced-query.vue'
  76. import components from './_import-components/audit-wb-selectproject-import'
  77. const columns = [
  78. {
  79. title: '序号',
  80. customRender: (text, record, index) => `${index + 1}`,
  81. width: '80px',
  82. },
  83. {
  84. title: '项目名称',
  85. dataIndex: 'projectTitle',
  86. scopedSlots: { customRender: 'islink' },
  87. width: '35%',
  88. },
  89. {
  90. title: '项目编号',
  91. dataIndex: 'projectCode',
  92. width: '15%',
  93. defaultSortOrder: 'desc',
  94. },
  95. {
  96. title: '外部检查机构',
  97. dataIndex: 'inspectionOrg',
  98. sdHidden: true,
  99. },
  100. {
  101. title: '被检查机构',
  102. dataIndex: 'auditedUnitNames',
  103. },
  104. {
  105. title: '外部项目联系人',
  106. dataIndex: 'linkMan',
  107. },
  108. {
  109. title: '被检查类型',
  110. dataIndex: 'auditedUnitIds',
  111. sdHidden: true,
  112. },
  113. {
  114. title: '创建时间',
  115. dataIndex: 'creationTime',
  116. sdHidden: true,
  117. },
  118. ]
  119. export default {
  120. name: 'AuditWbSelectproject',
  121. metaInfo: {
  122. title: '外部项目',
  123. },
  124. components: {
  125. ...components,
  126. auditAdvancedQuery,
  127. },
  128. mixins: [auditAdvancedQueryMixins],
  129. data() {
  130. return {
  131. formData: {
  132. projectTitle: '',
  133. projectCode: '',
  134. year: '',
  135. },
  136. columns,
  137. // 高级搜索
  138. searchform: 'searchform',
  139. expand: false,
  140. // 列表展示过滤条件
  141. filterExpressions: [
  142. {
  143. dataType: 'int',
  144. name: 'releaseType',
  145. op: 'eq',
  146. intValue: 1,
  147. },
  148. ],
  149. period: [],
  150. endOpen: false,
  151. year: null,
  152. }
  153. },
  154. created() {
  155. this.year = moment(new Date())
  156. this.formData.year = moment(new Date()).format('YYYY')
  157. },
  158. methods: {
  159. fndblclick(record, index) {
  160. this.$emit('listSelected', [record], index)
  161. },
  162. moment,
  163. yearChange(value) {
  164. this.year = value
  165. this.formData.year = value
  166. if (document.getElementsByClassName('ant-calendar-picker-container').length > 0) {
  167. document.getElementsByClassName('ant-calendar-picker-container')[0].style.display = 'none'
  168. }
  169. // this.searchYear = moment(value).format('YYYY')
  170. // this.yearShow = false
  171. },
  172. handleEndOpenChange(open) {
  173. this.endOpen = open
  174. },
  175. // 弹出日历和关闭日历的回调
  176. openChange(status) {
  177. // status是打开或关闭的状态
  178. if (status) {
  179. this.yearShow = true
  180. } else {
  181. this.yearShow = false
  182. }
  183. },
  184. processRes(data) {
  185. let index = 0
  186. data.data.forEach((item) => {
  187. item.id = this.$refs.SJMXDataTable.localPagination.current + '-' + index
  188. index++
  189. })
  190. return data
  191. },
  192. // 翻页操作
  193. onChange(pagination, filters, sorter) {
  194. this.pageSize = pagination.pageSize
  195. this.startPosition = (pagination.current - 1) * pagination.pageSize
  196. },
  197. // 开启关闭
  198. searchedClick() {
  199. this.expand = false
  200. },
  201. handleSearch() {
  202. const formData = this.formData
  203. // 获取当前表格过滤条件
  204. this.filterExpressions = [
  205. {
  206. dataType: 'int',
  207. name: 'releaseType',
  208. op: 'eq',
  209. intValue: 1,
  210. },
  211. ]
  212. // 获取高级搜索的数据
  213. // 开始修改
  214. if (formData !== null) {
  215. // 项目名称
  216. if (this.formData.projectTitle) {
  217. this.filterExpressions.push({
  218. dataType: 'str',
  219. name: 'projectTitle',
  220. op: 'like',
  221. stringValue: `${this.formData.projectTitle}`,
  222. })
  223. }
  224. // 档案编号
  225. if (this.formData.projectCode) {
  226. this.filterExpressions.push({
  227. dataType: 'str',
  228. name: 'projectCode',
  229. op: 'like',
  230. stringValue: `${this.formData.projectCode}`,
  231. })
  232. }
  233. // // 档案编号
  234. // if (this.formData.year) {
  235. // debugger
  236. // // 开始时间
  237. // var startTime = new Date(this.formData.year + '-01-01 00:00:00').getTime()
  238. // // 结束时间
  239. // var endTime = new Date(this.formData.year + '-12-31 23:59:59').getTime()
  240. // this.filterExpressions.push({
  241. // dataType: 'long',
  242. // name: 'creationTime',
  243. // op: 'ge',
  244. // longValue: `${startTime}`,
  245. // })
  246. // this.filterExpressions.push({
  247. // dataType: 'long',
  248. // name: 'creationTime',
  249. // op: 'le',
  250. // longValue: `${endTime}`,
  251. // })
  252. // }
  253. }
  254. },
  255. },
  256. }
  257. </script>
  258. <style module lang="scss">
  259. @use '@/common/design' as *;
  260. .selectproject {
  261. :global(.ant-calendar-picker) {
  262. width: calc(100% + 33px);
  263. }
  264. }
  265. </style>