wupengfei
18 小时以前 08740aaf0861ee8c11a8bf6a97a1219f7d198043
apps/bMiniApp/src/subpackages/flexJobManage/flexJobSign/InnerPage.vue
@@ -14,49 +14,62 @@
    v-bind="infiniteLoadingProps"
  >
    <template #renderItem="{ item }">
      <SignCard @click="handleCheck(item)" v-model:checked-id="checkedId" :id="item.id"></SignCard>
      <SignCard
        :templateId="item.templateId"
        :name="item.name"
        @click="handleCheck(item)"
        v-model:checked-id="checkedId"
        :id="item.id"
      ></SignCard>
    </template>
  </InfiniteLoading>
  <PageFooter>
    <PageFooterBtn type="primary">邀请签约</PageFooterBtn>
    <PageFooterBtn type="primary" @click="handleInvite">邀请签约</PageFooterBtn>
  </PageFooter>
</template>
<script setup lang="ts">
import { useInfiniteLoading } from '@12333/hooks';
import { OrderInputType } from '@12333/constants';
import * as flexWorkerServices from '@12333/services/api/FlexWorker';
import { EnumPagedListOrder } from '@12333/constants';
import * as electronSignServices from '@12333/services/apiV2/electronSign';
import * as enterpriseEmployeeServices from '@12333/services/apiV2/enterpriseEmployee';
import _ from 'lodash';
import { trim } from '@12333/utils';
import { Message, trim } from '@12333/utils';
import { SignCard } from '@12333/components';
import Taro from '@tarojs/taro';
import { goBack } from '@/utils';
defineOptions({
  name: 'InnerPage',
});
const router = Taro.useRouter();
const enterpriseEmployeeId = router.params?.enterpriseEmployeeId ?? '';
const searchValue = ref('');
const queryState = reactive({
  searchValueTrim: '',
  keywords: '',
});
const checkedId = ref('');
const handleSearch = _.debounce(function () {
  queryState.searchValueTrim = trim(searchValue.value);
  queryState.keywords = trim(searchValue.value);
}, 300);
const { infiniteLoadingProps } = useInfiniteLoading(
  ({ pageParam }) => {
    let params: API.GetFlexTaskListInput = {
    let params: API.GetEnterpriseContractTemplatesQuery = {
      pageModel: {
        rows: 20,
        page: pageParam,
        orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
        orderInput: [{ property: 'id', order: EnumPagedListOrder.Desc }],
      },
      keywords: queryState.keywords,
    };
    return flexWorkerServices.getFlexTaskByArrange(params, {
    return electronSignServices.getEnterpriseContractTemplates(params, {
      showLoading: false,
    });
  },
@@ -65,9 +78,26 @@
  }
);
function handleCheck(item: API.OrderInfoDto) {
function handleCheck(item: API.GetEnterpriseContractTemplatesQueryResultItem) {
  checkedId.value = item.id;
}
async function handleInvite() {
  try {
    let params: API.InviteElectronSignCommand = {
      id: enterpriseEmployeeId,
      contractTemplateId: checkedId.value,
    };
    let res = await enterpriseEmployeeServices.inviteElectronSign(params);
    if (res) {
      Message.success('签约成功', {
        onClosed() {
          goBack();
        },
      });
    }
  } catch (error) {}
}
</script>
<style lang="scss">