index.vue 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <template>
  2. <!-- 客户资料详情-->
  3. <a-modal class="add-custom custom-detail"
  4. title="客户资料详情"
  5. centered
  6. v-model:visible="visible"
  7. :maskClosable="false"
  8. @cancel="cancel"
  9. width="890px">
  10. <template #footer>
  11. <a-button key="submit"
  12. type="primary"
  13. :loading="loading"
  14. @click="cancel">关闭</a-button>
  15. </template>
  16. <Des :list="desList" />
  17. </a-modal>
  18. </template>
  19. <script lang="ts">
  20. import { defineComponent, PropType, watchEffect } from 'vue';
  21. import { closeModal } from '@/common/setup/modal/index';
  22. import { Des, handleDesList } from '@/common/components/commonDes';
  23. import { QhjAgreementConfig } from '@/services/go/ermcp/qhj/interface';
  24. import { formatValue } from '@/common/methods';
  25. import { getAgreementTypeName } from '@/common/constants/enumsName';
  26. import { handleArgreementType } from '../../setup';
  27. export default defineComponent({
  28. name: 'custom-detail',
  29. components: { Des },
  30. props: {
  31. selectedRow: {
  32. type: Object as PropType<QhjAgreementConfig>,
  33. default: {},
  34. },
  35. },
  36. setup(props, context) {
  37. const { visible, cancel } = closeModal('detail');
  38. const { desList, getDesList } = handleDesList();
  39. const { getRateEnumName } = handleArgreementType();
  40. watchEffect(() => {
  41. if (visible.value) {
  42. const data = props.selectedRow;
  43. // 个人
  44. const list = [
  45. { label: '协议编号', value: formatValue(data.agreementno) },
  46. { label: '协议名称', value: formatValue(data.agreementname) },
  47. { label: '协议类型', value: getAgreementTypeName(data.agreementtype) },
  48. { label: '签署频率', value: getRateEnumName(data.agreementfrequency) },
  49. { label: '内容', value: formatValue(data.agreementcontent), className: 'blue' },
  50. ];
  51. getDesList(list);
  52. }
  53. });
  54. return {
  55. cancel,
  56. desList,
  57. visible,
  58. };
  59. },
  60. });
  61. </script>
  62. <style lang="less">
  63. .custom-detail {
  64. .ant-form.inlineForm {
  65. margin-top: 20px;
  66. }
  67. .upload {
  68. .look {
  69. margin-left: 0;
  70. }
  71. }
  72. }
  73. </style>;