From 31d437890f80ac39ac19c4b7f5624de45ae191c1 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 22 八月 2025 10:14:05 +0800
Subject: [PATCH] fix: 签约

---
 src/views/ServiceChargeManage/ServiceChargeSettle.vue |  170 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 160 insertions(+), 10 deletions(-)

diff --git a/src/views/ServiceChargeManage/ServiceChargeSettle.vue b/src/views/ServiceChargeManage/ServiceChargeSettle.vue
index 3433b36..bdfca37 100644
--- a/src/views/ServiceChargeManage/ServiceChargeSettle.vue
+++ b/src/views/ServiceChargeManage/ServiceChargeSettle.vue
@@ -1,15 +1,106 @@
 <template>
   <LoadingLayout :loading="isLoading">
     <AppScrollContainer>
-      <ChunkCell title="浠樻鏂逛俊鎭�"> </ChunkCell>
-      <ChunkCell title="鏀舵鏂逛俊鎭�"> </ChunkCell>
-      <ChunkCell title="杞处淇℃伅"> </ChunkCell>
+      <ChunkCell title="浠樻鏂逛俊鎭�">
+        <ProForm :model="form" ref="formRef" label-width="120px">
+          <ProFormItemV2
+            label="浠樻璐︽埛:"
+            prop="name"
+            :check-rules="[{ message: '璇烽�夋嫨浠樻璐︽埛' }]"
+          >
+            <ProFormSelect
+              v-model="form.name"
+              :valueEnum="[]"
+              placeholder="璇烽�夋嫨鎮ㄧ殑浠樻鏂瑰紡"
+              clearable
+            >
+            </ProFormSelect>
+          </ProFormItemV2>
+          <ProFormMixinsItemContainer>
+            <ProFormItemV2
+              label="浠樻閲戦:"
+              prop="money"
+              :check-rules="[{ message: '璇疯緭鍏ヤ粯娆鹃噾棰�' }]"
+              mode="read"
+            >
+              <ProFormInputNumber v-model="form.money"> </ProFormInputNumber>
+            </ProFormItemV2>
+          </ProFormMixinsItemContainer>
+        </ProForm>
+      </ChunkCell>
+      <ChunkCell title="鏀舵鏂逛俊鎭�">
+        <ProTableQueryFilterBar @on-reset="reset">
+          <template #query>
+            <QueryFilterItem>
+              <SearchInput
+                v-model="extraParamState.keywords"
+                style="width: 300px"
+                placeholder="浜哄憳濮撳悕/韬唤璇佸彿/鎵嬫満鍙�"
+                @on-click-search="getList"
+              >
+              </SearchInput>
+            </QueryFilterItem>
+          </template>
+        </ProTableQueryFilterBar>
+        <ProTableV2
+          v-bind="proTableProps"
+          :columns="SettlementListColumns"
+          :show-operation-column="false"
+          :auto-height="false"
+          ref="proTable"
+          :tableProps="{
+            maxHeight: '400px',
+          }"
+        >
+        </ProTableV2>
+      </ChunkCell>
+      <ChunkCell title="杞处淇℃伅">
+        <ProForm :model="form" ref="formRef" label-width="120px">
+          <ProFormMixinsItemContainer>
+            <ProFormItemV2 label="浜ゆ槗鐢ㄩ��:" prop="name" mode="read">
+              <ProFormText v-model="form.name"> </ProFormText>
+            </ProFormItemV2>
+          </ProFormMixinsItemContainer>
+          <ProFormItemV2 label="闄勮█:" prop="name">
+            <ProFormText v-model="form.name" :maxlength="30" show-word-limit> </ProFormText>
+          </ProFormItemV2>
+          <ProFormItemV2 label="澶囨敞:" prop="name">
+            <ProFormText v-model="form.name" :maxlength="30" show-word-limit> </ProFormText>
+          </ProFormItemV2>
+          <div class="chuck-add-or-edit-actions">
+            <el-button class="chuck-add-or-edit-actions" @click="handleBack()">鍙栨秷</el-button>
+            <el-button class="chuck-add-or-edit-actions" type="primary" @click="handleSubmit"
+              >鎻愪氦瀹℃牳</el-button
+            >
+          </div>
+        </ProForm>
+      </ChunkCell>
     </AppScrollContainer>
   </LoadingLayout>
 </template>
 <script setup lang="ts">
-import { LoadingLayout, AppScrollContainer, ChunkCell } from '@bole-core/components';
+import {
+  LoadingLayout,
+  AppScrollContainer,
+  ChunkCell,
+  ProForm,
+  ProFormItemV2,
+  ProFormText,
+  ProFormSelect,
+  ProFormInputNumber,
+  ProTableV2,
+  QueryFilterItem,
+  SearchInput,
+  ProTableQueryFilterBar,
+  ProFormMixinsItemContainer,
+  useTable,
+} from '@bole-core/components';
 import { useQuery } from '@tanstack/vue-query';
+import { useRouteView } from '@/hooks';
+import { FormInstance } from 'element-plus';
+import { validateFormList } from '@/utils';
+import * as taskServices from '@/services/api/task';
+import { SettlementListColumns } from './constants';
 
 defineOptions({
   name: 'ServiceChargeSettle',
@@ -17,26 +108,85 @@
 
 const route = useRoute();
 const id = (route.params.id as string) ?? '';
+const eventContext = useGlobalEventContext();
+const { closeViewPush } = useRouteView();
 
-const state = reactive({
-  loading: true,
+const form = reactive({
+  name: '',
+  money: 0,
 });
 
 const { isLoading } = useQuery({
-  queryKey: ['flexTaskServices/getFlexTaskDetail', id],
+  queryKey: ['taskServices/getTaskInfo', id],
   queryFn: async () => {
-    return await flexTaskServices.getFlexTaskDetail(
+    return await taskServices.getTaskInfo(
       { id: id },
       {
         showLoading: false,
       }
     );
   },
-  onSuccess(data) {},
+  placeholderData: () => ({} as API.GetTaskInfoQueryResult),
+  onSuccess(data) {
+    form.name = data.name;
+  },
   enabled: !!id,
 });
 
-onMounted(() => {});
+const {
+  getDataSource: getList,
+  proTableProps,
+  paginationState,
+  extraParamState,
+  reset,
+} = useTable(
+  async ({ pageIndex, pageSize }, extraParamState) => {
+    try {
+      let params: API.GetOpenTaskInfosQuery = {
+        pageModel: {
+          rows: pageSize,
+          page: pageIndex,
+          orderInput: extraParamState.orderInput,
+        },
+        keywords: extraParamState.keywords,
+      };
+
+      let res = await taskServices.getOpenTaskInfos(params);
+      return res;
+    } catch (error) {
+      console.log('error: ', error);
+    }
+  },
+  {
+    defaultExtraParams: {
+      keywords: '',
+      orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
+    },
+    queryKey: ['taskServices/getOpenTaskInfos'],
+    columnsRenderProps: {},
+  }
+);
+
+function handleBack() {
+  closeViewPush(route, {
+    name: 'ServiceChargeManageList',
+  });
+}
+const formRef = ref<FormInstance>();
+async function handleSubmit() {
+  try {
+    const valid = await validateFormList([formRef.value]);
+    if (valid) {
+      submit();
+    }
+  } catch (error) {}
+}
+
+async function submit() {
+  try {
+    eventContext.emit('serviceChargeSettle');
+  } catch (error) {}
+}
 </script>
 
 <style lang="scss" scoped>

--
Gitblit v1.9.1