综合办公系统
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

depositForm.vue 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. <template>
  2. <div class="app-container">
  3. <el-row :gutter="20">
  4. <el-col :span="18" :xs="24">
  5. <h2 class="text-center">保证金审批表</h2>
  6. <el-divider></el-divider>
  7. <el-form ref="form" :model="form" :rules="rules" label-width="120px">
  8. <el-form-item label="投标项目id" prop="tenderId">
  9. <el-select v-model="form.tenderId" filterable placeholder="请选择" @change="handleSelectTender"
  10. :disabled="taskName != '保证金申请'" clearable>
  11. <el-option v-for="item in tenderList" :key="item.value" :label="item.projectName" :value="item.tenderId">
  12. </el-option>
  13. </el-select>
  14. </el-form-item>
  15. <el-form-item label="合同id" prop="contractId">
  16. <el-input v-model="form.contractId" placeholder="请输入合同id" />
  17. </el-form-item>
  18. <el-form-item label="预计退还日期" prop="returnTime">
  19. <el-date-picker clearable v-model="form.returnTime" type="date" value-format="yyyy-MM-dd"
  20. placeholder="请选择预计退还日期">
  21. </el-date-picker>
  22. </el-form-item>
  23. <el-form-item label="开户名称" prop="accountName">
  24. <el-input v-model="form.accountName" placeholder="请输入开户名称" />
  25. </el-form-item>
  26. <el-form-item label="开户银行" prop="accountBank">
  27. <el-input v-model="form.accountBank" placeholder="请输入开户银行" />
  28. </el-form-item>
  29. <el-form-item label="银行卡号" prop="cardNumber">
  30. <el-input v-model="form.cardNumber" placeholder="请输入银行卡号" />
  31. </el-form-item>
  32. <el-form-item label="保证金形式" prop="depositWay">
  33. <el-input v-model="form.depositWay" placeholder="请输入保证金形式" />
  34. </el-form-item>
  35. <el-form-item label="申请人" prop="applier">
  36. <el-input v-model="form.applier" placeholder="请输入申请人" />
  37. </el-form-item>
  38. <el-form-item label="申请日期" prop="applyTime">
  39. <el-date-picker clearable v-model="form.applyTime" type="date" value-format="yyyy-MM-dd"
  40. placeholder="请选择申请日期">
  41. </el-date-picker>
  42. </el-form-item>
  43. <el-form-item label="申请说明" prop="applyReason">
  44. <el-input v-model="form.applyReason" placeholder="请输入申请说明" />
  45. </el-form-item>
  46. <el-form-item label="相关附件" prop="applyDocument">
  47. <el-input v-model="form.applyDocument" placeholder="请输入相关附件" />
  48. </el-form-item>
  49. <el-form-item label="分管审批时间" prop="managerTime">
  50. <el-date-picker clearable v-model="form.managerTime" type="date" value-format="yyyy-MM-dd"
  51. placeholder="请选择分管审批时间">
  52. </el-date-picker>
  53. </el-form-item>
  54. <el-form-item label="分管审批人" prop="managerUserId">
  55. <el-input v-model="form.managerUserId" placeholder="请输入分管审批人" />
  56. </el-form-item>
  57. <el-form-item label="汇款日期" prop="remitTime">
  58. <el-date-picker clearable v-model="form.remitTime" type="date" value-format="yyyy-MM-dd"
  59. placeholder="请选择汇款日期">
  60. </el-date-picker>
  61. </el-form-item>
  62. <el-form-item label="财务处理时间" prop="cwTime">
  63. <el-date-picker clearable v-model="form.cwTime" type="date" value-format="yyyy-MM-dd" placeholder="请选择财务处理时间">
  64. </el-date-picker>
  65. </el-form-item>
  66. <el-form-item label="退还时间" prop="backTime">
  67. <el-date-picker clearable v-model="form.backTime" type="date" value-format="yyyy-MM-dd" placeholder="请选择退还时间">
  68. </el-date-picker>
  69. </el-form-item>
  70. <el-form-item label="财务打款备注" prop="cwComment">
  71. <el-input v-model="form.cwComment" placeholder="请输入财务打款备注" />
  72. </el-form-item>
  73. <el-form-item label="财务处理人" prop="cwUserId">
  74. <el-input v-model="form.cwUserId" placeholder="请输入财务处理人" />
  75. </el-form-item>
  76. </el-form>
  77. <div style="text-align: center;">
  78. <el-button type="primary" @click="submitForm">确 定</el-button>
  79. <el-button @click="cancel">取 消</el-button>
  80. </div>
  81. </el-col>
  82. <el-col :span="6" :xs="24">
  83. <el-card>
  84. <h2 style="text-align: center;">流程进度</h2>
  85. <div>
  86. <flow :flowData="flowData" />
  87. </div>
  88. </el-card>
  89. </el-col>
  90. </el-row>
  91. </div>
  92. </template>
  93. <script>
  94. import { parseTime } from "@/utils/ruoyi";
  95. import { listTender, getTender } from "@/api/oa/tender/tender";
  96. import { listDeposit, getDeposit, delDeposit, addDeposit, updateDeposit } from "@/api/oa/deposit/deposit";
  97. import { complete, getNextFlowNode } from "@/api/flowable/todo";
  98. import flow from '@/views/flowable/task/todo/detail/flow'
  99. import { flowXmlAndNode } from "@/api/flowable/definition";
  100. export default {
  101. components: {
  102. flow
  103. },
  104. props: {
  105. taskName: {
  106. type: String,
  107. required: true
  108. },
  109. taskForm: {
  110. type: Object,
  111. required: true
  112. }
  113. },
  114. name: "Deposit",
  115. data() {
  116. return {
  117. // 遮罩层
  118. loading: true,
  119. // 选中数组
  120. ids: [],
  121. // 非单个禁用
  122. single: true,
  123. // 非多个禁用
  124. multiple: true,
  125. // 显示搜索条件
  126. showSearch: true,
  127. // 总条数
  128. total: 0,
  129. // cmc保证金审批表格数据
  130. depositList: [],
  131. // 弹出层标题
  132. title: "",
  133. // 是否显示弹出层
  134. open: false,
  135. // 查询参数
  136. queryParams: {
  137. pageNum: 1,
  138. pageSize: 10,
  139. depositType: null,
  140. tenderId: null,
  141. contractId: null,
  142. returnTime: null,
  143. accountName: null,
  144. accountBank: null,
  145. cardNumber: null,
  146. depositWay: null,
  147. applier: null,
  148. applyTime: null,
  149. applyReason: null,
  150. applyDocument: null,
  151. managerTime: null,
  152. managerUserId: null,
  153. remitTime: null,
  154. cwTime: null,
  155. backTime: null,
  156. cwComment: null,
  157. cwUserId: null
  158. },
  159. // 表单参数
  160. form: {},
  161. // 表单校验
  162. rules: {
  163. },
  164. chooseTender: {},
  165. isSelect: false,
  166. formTotal: 0,
  167. flowData: {},
  168. tenderList: [],
  169. };
  170. },
  171. mounted() {
  172. this.initForm();
  173. },
  174. created() {
  175. this.getTenderList();
  176. this.getList();
  177. flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
  178. this.flowData = res.data;
  179. })
  180. },
  181. methods: {
  182. // 初始化表单
  183. initForm() {
  184. getDeposit(this.taskForm.formId).then(res => {
  185. if (this.isEmptyObject(res.data)) {
  186. this.formTotal = 0;
  187. this.form.applier = this.$store.getters.userId;
  188. this.form.applyTime = parseTime(new Date(), '{y}-{m}-{d}')
  189. }
  190. else {
  191. this.formTotal = 1;
  192. this.form = res.data;
  193. if (res.data.tenderId) {
  194. getTender(data.tenderId).then(response => {
  195. this.chooseTender = response.data;
  196. this.isSelect = true
  197. })
  198. }
  199. this.loading = false
  200. }
  201. })
  202. },
  203. /** 查询cmc保证金审批列表 */
  204. getList() {
  205. this.loading = true;
  206. listDeposit(this.queryParams).then(response => {
  207. this.depositList = response.rows;
  208. this.total = response.total;
  209. this.loading = false;
  210. });
  211. },
  212. // 取消按钮
  213. cancel() {
  214. this.open = false;
  215. this.reset();
  216. },
  217. // 查询项目列表
  218. getTenderList() {
  219. this.loading = true
  220. listTender({
  221. pageNum: 1,
  222. pageSize: 99999999
  223. }).then(response => {
  224. this.tenderList = response.rows;
  225. })
  226. },
  227. // 选择项目
  228. handleSelectTender(val) {
  229. if (val != "" && val != undefined && val != null) {
  230. getTender(val).then(res => {
  231. this.chooseTender = res.data;
  232. this.isSelect = true;
  233. })
  234. } else {
  235. this.isSelect = false
  236. }
  237. },
  238. isEmptyObject(obj) {
  239. for (var key in obj) {
  240. if (obj.hasOwnProperty(key)) {
  241. return false;
  242. }
  243. }
  244. return true;
  245. },
  246. // 表单重置
  247. reset() {
  248. this.form = {
  249. depositId: null,
  250. depositType: null,
  251. tenderId: null,
  252. contractId: null,
  253. returnTime: null,
  254. accountName: null,
  255. accountBank: null,
  256. cardNumber: null,
  257. depositWay: null,
  258. applier: null,
  259. applyTime: null,
  260. applyReason: null,
  261. applyDocument: null,
  262. managerTime: null,
  263. managerUserId: null,
  264. remitTime: null,
  265. cwTime: null,
  266. backTime: null,
  267. cwComment: null,
  268. cwUserId: null
  269. };
  270. this.resetForm("form");
  271. },
  272. /** 搜索按钮操作 */
  273. handleQuery() {
  274. this.queryParams.pageNum = 1;
  275. this.getList();
  276. },
  277. /** 重置按钮操作 */
  278. resetQuery() {
  279. this.resetForm("queryForm");
  280. this.handleQuery();
  281. },
  282. // 多选框选中数据
  283. handleSelectionChange(selection) {
  284. this.ids = selection.map(item => item.depositId)
  285. this.single = selection.length !== 1
  286. this.multiple = !selection.length
  287. },
  288. /** 新增按钮操作 */
  289. handleAdd() {
  290. this.reset();
  291. this.open = true;
  292. this.title = "添加cmc保证金审批";
  293. },
  294. /** 修改按钮操作 */
  295. handleUpdate(row) {
  296. this.reset();
  297. const depositId = row.depositId || this.ids
  298. getDeposit(depositId).then(response => {
  299. this.form = response.data;
  300. this.open = true;
  301. this.title = "修改cmc保证金审批";
  302. });
  303. },
  304. /** 提交按钮 */
  305. submitForm() {
  306. this.$refs["form"].validate(valid => {
  307. if (valid) {
  308. if (this.formTotal != 0) {
  309. updateDeposit(this.form).then(response => {
  310. this.$modal.msgSuccess("修改成功");
  311. this.open = false;
  312. this.getList();
  313. });
  314. } else {
  315. addDeposit(this.form).then(response => {
  316. this.$modal.msgSuccess("新增成功");
  317. this.open = false;
  318. this.getList();
  319. });
  320. }
  321. }
  322. });
  323. },
  324. /** 删除按钮操作 */
  325. handleDelete(row) {
  326. const depositIds = row.depositId || this.ids;
  327. this.$modal.confirm('是否确认删除cmc保证金审批编号为"' + depositIds + '"的数据项?').then(function () {
  328. return delDeposit(depositIds);
  329. }).then(() => {
  330. this.getList();
  331. this.$modal.msgSuccess("删除成功");
  332. }).catch(() => { });
  333. },
  334. /** 导出按钮操作 */
  335. handleExport() {
  336. this.download('oa/deposit/export', {
  337. ...this.queryParams
  338. }, `deposit_${new Date().getTime()}.xlsx`)
  339. }
  340. }
  341. };
  342. </script>