purchaseForm.vue 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. <template>
  2. <el-form ref="form" :model="dataForm" :rules="rules" label-width="120px">
  3. <headerTitle title="对账单信息"></headerTitle>
  4. <el-row>
  5. <el-col :span="12">
  6. <el-form-item label="来源类型" prop="sourceType">
  7. <el-select
  8. :disabled="dialogType=='view'"
  9. clearable
  10. class="ele-block"
  11. v-model="dataForm.sourceType"
  12. @change="handleChange"
  13. placeholder="请选择">
  14. <el-option label="供应商" :value="1" />
  15. <!-- <el-option label="项目" :value="2"/> -->
  16. <el-option label="合同" :value="4" />
  17. <el-option label="采购订单" :value="3" />
  18. </el-select>
  19. </el-form-item>
  20. </el-col>
  21. <el-col :span="12">
  22. <el-form-item label="选择供应商" prop="contactId" v-if="dataForm.sourceType ==1">
  23. <el-input :disabled="dialogType=='view'" v-model="dataForm.contactName"
  24. @click.native="handleGetCus"></el-input>
  25. </el-form-item>
  26. <!-- <el-form-item label="选择项目" prop="projectId" v-if="dataForm.sourceType ==2">-->
  27. <!-- <el-input :disabled="dialogType=='view'" v-model="dataForm.projectId" @click.native="handleGetOrd"></el-input>-->
  28. <!-- </el-form-item>-->
  29. <el-form-item label="选择订单" prop="orderId" v-if="dataForm.sourceType ==3">
  30. <el-input :disabled="dialogType=='view'" v-model="dataForm.sourceName" @click.native="handleGetOrd"></el-input>
  31. </el-form-item>
  32. <el-form-item
  33. label="选择合同"
  34. prop="contractId"
  35. v-if="dataForm.sourceType == 4"
  36. >
  37. <el-input
  38. :disabled="dialogType=='view'"
  39. v-model="dataForm.sourceName"
  40. @click.native="handleGetContract"
  41. ></el-input>
  42. </el-form-item>
  43. </el-col>
  44. </el-row>
  45. <el-row>
  46. <el-col :span="12">
  47. <el-form-item label="查询方式" prop="dateType">
  48. <el-select
  49. :disabled="dialogType=='view'"
  50. clearable
  51. class="ele-block"
  52. v-model="dataForm.dateType"
  53. @change="reloadTableData"
  54. placeholder="请选择">
  55. <el-option label="按年度" :value="1"/>
  56. <el-option label="按季度" :value="2"/>
  57. <el-option label="按月度" :value="3"/>
  58. <el-option label="按时间段" :value="4"/>
  59. </el-select>
  60. </el-form-item>
  61. </el-col>
  62. <el-col :span="12" v-if="![2].includes(dataForm.dateType)">
  63. <el-form-item label="选择年度" prop="year" v-if="[1].includes(dataForm.dateType)">
  64. <el-date-picker
  65. :disabled="dialogType=='view'"
  66. v-model="dataForm.year"
  67. value-format="yyyy"
  68. type="year"
  69. style="width: 100%"
  70. @change="reloadTableData"
  71. placeholder="选择年">
  72. </el-date-picker>
  73. </el-form-item>
  74. <el-form-item label="选择月度" prop="month" v-if="[3].includes(dataForm.dateType)">
  75. <el-date-picker
  76. :disabled="dialogType=='view'"
  77. v-model="dataForm.month"
  78. value-format="yyyy-MM"
  79. type="month"
  80. @change="reloadTableData"
  81. style="width: 100%">
  82. </el-date-picker>
  83. </el-form-item>
  84. <el-form-item label="选择时间段" prop="dateTimeRange" v-if="[4].includes(dataForm.dateType)">
  85. <el-date-picker
  86. :disabled="dialogType=='view'"
  87. v-model="dataForm.dateTimeRange"
  88. value-format="yyyy-MM-dd"
  89. type="daterange"
  90. @change="reloadTableData"
  91. range-separator="至"
  92. start-placeholder="开始日期"
  93. end-placeholder="结束日期"
  94. style="width: 100%">
  95. </el-date-picker>
  96. </el-form-item>
  97. </el-col>
  98. <el-col :span="6" v-if="[2].includes(dataForm.dateType)">
  99. <el-form-item label="选择年度" prop="year" v-if="[1,2].includes(dataForm.dateType)">
  100. <el-date-picker
  101. :disabled="dialogType=='view'"
  102. v-model="dataForm.year"
  103. value-format="yyyy"
  104. type="year"
  105. @change="reloadTableData"
  106. style="width: 100%"
  107. placeholder="选择年">
  108. </el-date-picker>
  109. </el-form-item>
  110. </el-col>
  111. <el-col :span="6" v-if="[2].includes(dataForm.dateType)">
  112. <el-form-item label="选择季度" prop="quarter" v-if="[2].includes(dataForm.dateType)">
  113. <el-select
  114. :disabled="dialogType=='view'"
  115. clearable
  116. @change="reloadTableData"
  117. class="ele-block"
  118. v-model="dataForm.quarter"
  119. placeholder="请选择">
  120. <el-option label="一季度" value="一季度"/>
  121. <el-option label="二季度" value="二季度"/>
  122. <el-option label="三季度" value="三季度"/>
  123. <el-option label="四季度" value="四季度"/>
  124. </el-select>
  125. </el-form-item>
  126. </el-col>
  127. </el-row>
  128. <el-row>
  129. <el-col :span="12">
  130. <el-form-item
  131. v-if="taskDefinitionKey=='uploadReceipt'"
  132. prop="repliedFiles"
  133. label="回执附件">
  134. <!-- <fileUpload
  135. v-model="dataForm.repliedFiles"
  136. module="main"
  137. :showLib="false"
  138. :limit="10"
  139. /> -->
  140. <fileMain v-model="dataForm.repliedFiles"></fileMain>
  141. </el-form-item>
  142. </el-col>
  143. </el-row>
  144. <el-row v-if="dialogType!=='view'">
  145. <el-col :span="24">
  146. <el-button style="float: right;" @click="handleSearch" type="primary">查询</el-button>
  147. </el-col>
  148. </el-row>
  149. <parentList ref="parentRef" @changeParent="getCusInfo"></parentList>
  150. <orderListDialog ref="orderListDialogRef" @changeParent="getOrderInfo"
  151. ></orderListDialog>
  152. </el-form>
  153. </template>
  154. <script xmlns:el-col="http://www.w3.org/1999/html">
  155. import parentList from "./supplierList.vue";
  156. import OrderListDialog from "./orderListDialog.vue";
  157. // import fileUpload from "@/components/upload/fileUpload.vue";
  158. // import fileMain from "@/components/addDoc/index.vue";
  159. export default {
  160. name: "saleForm",
  161. components: {
  162. // fileMain,
  163. OrderListDialog, parentList},
  164. props: ['dataForm', 'datasource', 'dialogType', 'taskDefinitionKey'],
  165. data() {
  166. return {
  167. monthByDays: {},
  168. quarterList: {
  169. '一季度': ['-01-01 00:00:00', '-03-31 12:59:59'],
  170. '二季度': ['-04-01 00:00:00', '-06-30 12:59:59'],
  171. '三季度': ['-07-01 00:00:00', '-09-30 12:59:59'],
  172. '四季度': ['-10-01 00:00:00', '-12-31 12:59:59'],
  173. },
  174. startTime: '-01-01 00:00:00',
  175. endTime: '12:59:59',
  176. rules: {
  177. sourceType: {required: true, message: '请选择', trigger: 'change'},
  178. contactId: {required: true, message: '请选择', trigger: 'change'},
  179. projectId: {required: true, message: '请选择', trigger: 'change'},
  180. // orderId: {required: true, message: '请选择', trigger: 'change'},
  181. dateType: {required: true, message: '请选择', trigger: 'change'},
  182. year: {required: true, message: '请选择', trigger: 'change'},
  183. quarter: {required: true, message: '请选择', trigger: 'change'},
  184. month: {required: true, message: '请选择', trigger: 'change'},
  185. dateTimeRange: {required: true, message: '请选择', trigger: 'change'},
  186. repliedFiles: {required: this.taskDefinitionKey == 'uploadReceipt', message: '请上传', trigger: 'change'},
  187. },
  188. }
  189. },
  190. methods: {
  191. //查询
  192. handleSearch() {
  193. this.$emit('handleSearch', this.dataForm)
  194. },
  195. //
  196. getDays() {
  197. },
  198. //获取客户信息
  199. handleGetCus() {
  200. let item = {id: this.dataForm.contactId};
  201. this.$refs.parentRef.open(item);
  202. },
  203. //选择客户信息回调
  204. getCusInfo(obj) {
  205. let params = Object.assign({}, this.dataForm, {
  206. contactId: obj.id,
  207. contactName: obj.name,
  208. sourceName: obj.name,
  209. sourceId: obj.id,
  210. });
  211. this.$emit('update:dataForm', params)
  212. this.reloadTableData()
  213. },
  214. //获取订单信息
  215. handleGetOrd() {
  216. let item = {id: this.dataForm.orderId};
  217. this.$refs.orderListDialogRef.open(item);
  218. },
  219. //选择订单信息回调
  220. getOrderInfo(obj) {
  221. let params = Object.assign({}, this.dataForm, {
  222. orderId: obj.id,
  223. orderNo: obj.orderNo,
  224. contactId: obj.partbId,
  225. contactName: obj.partbName,
  226. sourceName: obj.orderNo,
  227. sourceId: obj.id,
  228. });
  229. this.$emit('update:dataForm', params)
  230. this.reloadTableData()
  231. },
  232. //切换来源类型重置数据
  233. handleChange() {
  234. let params = Object.assign({}, {
  235. ...this.dataForm,
  236. orderNo: '',
  237. orderId: '',
  238. contactId: '',
  239. contactName: '',
  240. sourceName: '',
  241. sourceId: '',
  242. })
  243. this.$emit('update:dataForm', params)
  244. this.reloadTableData()
  245. },
  246. reloadTableData() {
  247. this.$emit('update:datasource', [])
  248. },
  249. },
  250. mounted() {
  251. // const year = new Date().getFullYear(); // 获取当前年份
  252. // for (let i = 0; i < 12; i++) {
  253. // // 获取指定月份的天数
  254. // this.monthByDays[i + 1] = new Date(year, i + 1, 0).getDate()
  255. // }
  256. },
  257. }
  258. </script>
  259. <style scoped lang="scss">
  260. ::v-deep.el-divider {
  261. margin: 10px;
  262. font-weight: bold;
  263. }
  264. </style>