index.vue 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309
  1. <template>
  2. <div class="page-container list-container">
  3. <div class="list-btns-container"></div>
  4. <!-- 搜索区 -->
  5. <el-form
  6. class="list-search-container"
  7. size="small"
  8. :model="queryParams"
  9. ref="queryRef"
  10. :inline="true"
  11. label-width="68px"
  12. >
  13. <el-form-item label="客户名称:" prop="companyName">
  14. <el-input
  15. v-model="queryParams.companyName"
  16. placeholder="请输入客户名称"
  17. clearable
  18. style="width: 150px"
  19. @keyup.enter="handleQuery"
  20. />
  21. </el-form-item>
  22. <el-form-item>
  23. <el-button type="primary" icon="Search" @click="handleQuery"
  24. >搜索</el-button
  25. >
  26. <el-button icon="Refresh" @click="resetQuery">重置</el-button>
  27. </el-form-item>
  28. </el-form>
  29. <!-- 列表区 -->
  30. <el-table
  31. v-loading="loading"
  32. :data="orderList"
  33. size="small"
  34. border
  35. height="100%"
  36. @selection-change="handleSelectionChange"
  37. >
  38. <el-table-column type="selection" width="55" align="center" />
  39. <el-table-column
  40. label="客户名称"
  41. align="center"
  42. prop="companyName"
  43. min-width="250"
  44. />
  45. <el-table-column
  46. label="税号"
  47. align="center"
  48. prop="socialCreditCode"
  49. min-width="180"
  50. />
  51. <el-table-column
  52. label="合同编号"
  53. align="center"
  54. prop="contractNo"
  55. min-width="150"
  56. />
  57. <el-table-column
  58. label="签约日期"
  59. align="center"
  60. prop="formDate"
  61. width="85"
  62. >
  63. <template #default="scope">
  64. <span>{{ parseTime(scope.row.formDate, "{y}-{m}-{d}") }}</span>
  65. </template>
  66. </el-table-column>
  67. <el-table-column
  68. label="签约金额"
  69. header-align="center"
  70. align="right"
  71. prop="trueAmount"
  72. min-width="90"
  73. >
  74. <template #default="scope">
  75. <span>{{ rowNum(scope.row.trueAmount) }}</span>
  76. </template>
  77. </el-table-column>
  78. <el-table-column
  79. label="签单人"
  80. align="center"
  81. prop="signerName"
  82. min-width="100"
  83. />
  84. <el-table-column
  85. label="收款状态"
  86. align="center"
  87. prop="collectionStatus"
  88. min-width="140"
  89. >
  90. <template #default="scope">
  91. <dict-tag
  92. :options="contract_receipt_verify"
  93. :value="scope.row.collectionStatus"
  94. />
  95. </template>
  96. </el-table-column>
  97. <el-table-column
  98. label="合同来源"
  99. align="center"
  100. prop="sourceCategoryName"
  101. min-width="130"
  102. />
  103. <!-- <el-table-column
  104. label="审核状态"
  105. align="center"
  106. prop="verifyStatus"
  107. min-width="100"
  108. >
  109. <template #default="scope">
  110. <dict-tag
  111. :options="contract_verify_status"
  112. :value="scope.row.verifyStatus"
  113. />
  114. </template>
  115. </el-table-column> -->
  116. <el-table-column
  117. label="合同类型"
  118. align="center"
  119. width="80"
  120. prop="contractType"
  121. >
  122. <template #default="scope">
  123. {{ scope.row.contractType === 0 ? "新签" : "续签" }}
  124. </template>
  125. </el-table-column>
  126. <el-table-column
  127. label="任务类型"
  128. align="center"
  129. width="80"
  130. prop="serviceType"
  131. >
  132. <template #default="scope">
  133. {{ scope.row.serviceType === 1 ? "循环" : "代办" }}
  134. </template>
  135. </el-table-column>
  136. <el-table-column
  137. label="合同状态"
  138. min-width="100"
  139. align="center"
  140. prop="status"
  141. >
  142. <template #default="scope">
  143. <dict-tag :options="contract_status" :value="scope.row.status" />
  144. </template>
  145. </el-table-column>
  146. <el-table-column
  147. label="操作"
  148. align="center"
  149. fixed="right"
  150. min-width="100"
  151. class-name="small-padding fixed-width"
  152. >
  153. <template #default="scope">
  154. <el-button
  155. link
  156. type="warning"
  157. size="small"
  158. @click="handleAdd(scope.row)"
  159. v-hasPermi="['business:collection:add']"
  160. >新增收款</el-button
  161. >
  162. </template>
  163. </el-table-column>
  164. </el-table>
  165. <contract-form ref="contractRef" :get-list="getList" />
  166. <!-- 分页 -->
  167. <pagination
  168. v-show="total > 0"
  169. :total="total"
  170. v-model:page="queryParams.pageNum"
  171. v-model:limit="queryParams.pageSize"
  172. @pagination="getList"
  173. />
  174. </div>
  175. </template>
  176. <script setup name="WaitForCollection">
  177. import contractForm from "./form";
  178. import { listContract } from "@/api/business/financial/collection";
  179. const { proxy } = getCurrentInstance();
  180. /** 字典数组区 */
  181. /** 查询 对象 */
  182. const orderList = ref([]);
  183. const loading = ref(true);
  184. const ids = ref([]);
  185. const single = ref(true);
  186. const multiple = ref(true);
  187. const total = ref(0);
  188. const { contract_verify_status } = proxy.useDict("contract_verify_status");
  189. const { contract_status } = proxy.useDict("contract_status");
  190. const { contract_receipt_verify } = proxy.useDict("contract_receipt_verify");
  191. console.log(22,contract_verify_status);
  192. /** 查询对象 */
  193. const queryParams = ref({
  194. pageNum: 1,
  195. pageSize: 20,
  196. nonpayment: true,
  197. orderByColumn: "create_time",
  198. });
  199. /*********************** 方法区 ****************************/
  200. onActivated(() => {
  201. // 你的逻辑
  202. getList();
  203. });
  204. /** 查询company列表 */
  205. function getList() {
  206. loading.value = true;
  207. listContract(queryParams.value).then((response) => {
  208. orderList.value = response.rows;
  209. total.value = response.total;
  210. loading.value = false;
  211. });
  212. }
  213. /** 搜索按钮操作 */
  214. function handleQuery() {
  215. queryParams.value.pageNum = 1;
  216. getList();
  217. }
  218. /** 重置按钮操作 */
  219. function resetQuery() {
  220. // proxy.resetForm("queryRef");
  221. queryParams.value = {
  222. pageNum: 1,
  223. pageSize: 20,
  224. nonpayment: true,
  225. orderByColumn: "create_time",
  226. };
  227. handleQuery();
  228. }
  229. // 数字格式化
  230. function rowNum(num) {
  231. num = num.toLocaleString(); // 3,000
  232. if (num.indexOf(".") == -1) {
  233. num = num + ".00"; //3,000.00
  234. } else if (num.charAt(num.indexOf(".") == num.length - 2)) {
  235. num = num + "0";
  236. }
  237. return num;
  238. }
  239. // 多选框选中数据
  240. function handleSelectionChange(selection) {
  241. ids.value = selection.map((item) => item.id);
  242. single.value = selection.length != 1;
  243. multiple.value = !selection.length;
  244. }
  245. /** 新增按钮操作 */
  246. function handleAdd(row) {
  247. proxy.$refs.contractRef.open(row);
  248. }
  249. /** 修改按钮操作 */
  250. function handleUpdate(row) {
  251. const id = row.id || ids.value;
  252. proxy.$refs.contractRef.open(id);
  253. }
  254. /** 删除按钮操作 */
  255. function handleDelete(row) {
  256. const _ids = row.id || ids.value;
  257. proxy.$modal
  258. .confirm("是否确认删除选中的数据项?")
  259. .then(function () {
  260. return delOrder(_ids);
  261. })
  262. .then(() => {
  263. getList();
  264. proxy.$modal.msgSuccess("删除成功!");
  265. })
  266. .catch(() => {});
  267. }
  268. function handleAlter(row) {
  269. const id = row.id || ids.value;
  270. proxy.$refs.contractRef.openSimple(id, "alterOrder");
  271. }
  272. function handleDissolution() {
  273. const row = orderList.value.find((item) => item.id === ids.value[0]);
  274. proxy.$modal
  275. .confirm("是否确认解除合同?")
  276. .then(function () {
  277. return dissolutionOrder(row);
  278. })
  279. .then(() => {
  280. getList();
  281. proxy.$modal.msgSuccess("删除成功!");
  282. })
  283. .catch(() => {});
  284. }
  285. /** 导出按钮操作 */
  286. function handleExport() {
  287. exportOrder(queryParams.value);
  288. }
  289. function handleImport() {}
  290. getList();
  291. </script>