123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- <template>
- <div class="form">
- <van-nav-bar :title="$t('accountPayment.name')" :left-text="$t('common.back')" left-arrow @click-left="onClickLeft"> </van-nav-bar>
- <testForm v-model="formData.data" :formOption="formOption" :formConfig="formConfig" :rules="rules" @onSubmit="onSubmit" ref="formDom">
- <template #date>
- <div style="width: 100%">
- <van-cell-group inset>
- <van-field
- v-model="formData.data.expensesTime"
- is-link
- readonly
- :label="$t('accountPayment.expensesTime')"
- :placeholder="$t('common.pleaseSelect')"
- style="padding: 0 !important"
- :required="true"
- @click="clickDate" />
- <van-popup v-model:show="showPicker" round position="bottom">
- <van-picker-group
- :title="$t('accountPayment.expensesTime')"
- :tabs="[$t('common.selectDate'), $t('common.selectTime')]"
- @confirm="onConfirm"
- @cancel="onCancel">
- <van-date-picker v-model="currentDate" />
- <van-time-picker v-model="currentTime" :columns-type="columnsType" />
- </van-picker-group>
- </van-popup>
- </van-cell-group>
- </div>
- </template>
- </testForm>
- </div>
- </template>
- <script setup>
- import { ref, getCurrentInstance, onMounted, reactive } from "vue";
- import { showSuccessToast } from "vant";
- import { useRoute } from "vue-router";
- import { getUserInfo, formatDate } from "@/utils/auth";
- import testForm from "@/components/testForm/index.vue";
- const proxy = getCurrentInstance().proxy;
- const onClickLeft = () => history.back();
- const route = useRoute();
- const showPicker = ref(false);
- const currentDate = ref([]);
- const currentTime = ref([]);
- const columnsType = ["hour", "minute", "second"];
- const onConfirm = () => {
- formData.data.expensesTime = currentDate.value.join("-") + " " + currentTime.value.join(":");
- showPicker.value = false;
- };
- const onCancel = () => {
- showPicker.value = false;
- };
- const clickDate = () => {
- currentDate.value = formatDate(new Date(formData.data.expensesTime), "yyyy-MM-dd").split("-");
- currentTime.value = formatDate(new Date(formData.data.expensesTime), "hh:mm:ss").split(":");
- showPicker.value = true;
- };
- const formData = reactive({
- data: {
- expensesTime: "",
- },
- });
- const formDom = ref(null);
- const formOption = reactive({
- readonly: false, //用于控制整个表单是否只读
- disabled: false,
- labelAlign: "top",
- scroll: true,
- labelWidth: "62pk",
- hiddenSubmitBtn: false,
- });
- const formConfig = reactive([
- {
- type: "title",
- title: proxy.t("accountPayment.requestInformation"),
- },
- {
- type: "input",
- label: proxy.t("accountPayment.businessManagementName"),
- prop: "businessManagementName",
- itemType: "text",
- readonly: true,
- },
- {
- type: "input",
- label: proxy.t("accountPayment.currencyAmount"),
- prop: "currencyAmount",
- itemType: "text",
- readonly: true,
- },
- {
- type: "input",
- label: proxy.t("accountPayment.paymentMethodText"),
- prop: "paymentMethodText",
- itemType: "text",
- readonly: true,
- },
- {
- type: "input",
- label: proxy.t("accountPayment.collectionName"),
- prop: "name",
- itemType: "text",
- readonly: true,
- },
- {
- type: "input",
- label: proxy.t("accountPayment.accountOpening"),
- prop: "accountOpening",
- itemType: "text",
- readonly: true,
- },
- {
- type: "input",
- label: proxy.t("accountPayment.openingBank"),
- prop: "openingBank",
- itemType: "text",
- readonly: true,
- },
- {
- type: "input",
- label: proxy.t("accountPayment.interbankNumber"),
- prop: "interbankNumber",
- itemType: "text",
- readonly: true,
- },
- {
- type: "title",
- title: proxy.t("accountPayment.paymentInformation"),
- },
- {
- type: "picker",
- label: proxy.t("accountPayment.accountManagementId"),
- prop: "accountManagementId",
- itemType: "onePicker",
- showPicker: false,
- fieldNames: {
- text: "label",
- value: "value",
- },
- data: [],
- },
- {
- type: "picker",
- label: proxy.t("accountPayment.currency"),
- prop: "currency",
- itemType: "onePicker",
- showPicker: false,
- readonly: true,
- fieldNames: {
- text: "label",
- value: "value",
- },
- data: [],
- },
- {
- type: "input",
- label: proxy.t("accountPayment.amount"),
- prop: "amount",
- itemType: "number",
- readonly: true,
- },
- {
- type: "slot",
- slotName: "date",
- },
- {
- type: "input",
- label: proxy.t("accountPayment.remark"),
- prop: "remark",
- itemType: "textarea",
- },
- ]);
- const rules = {
- accountManagementId: [{ required: true, message: proxy.t("accountPayment.accountManagementIdMsg") }],
- currency: [{ required: true, message: proxy.t("accountPayment.currencyMsg") }],
- amount: [{ required: true, message: proxy.t("accountPayment.amountMsg") }],
- expensesTime: [{ required: true, message: proxy.t("accountPayment.expensesTimeMsg") }],
- };
- const onSubmit = () => {
- proxy.post("/accountPayment/add", formData.data).then(() => {
- showSuccessToast(proxy.t("common.addSuccess"));
- setTimeout(() => {
- history.back();
- }, 500);
- });
- };
- const fundsPayment = ref([]);
- const gerFundsPayment = () => {
- return proxy
- .post("/dictTenantData/page", {
- pageNum: 1,
- pageSize: 999,
- tenantId: getUserInfo().tenantId,
- dictCode: "funds_payment_method",
- })
- .then((res) => {
- fundsPayment.value = res.data.rows;
- });
- };
- const accountList = ref([]);
- const gerAccountList = () => {
- return proxy.post("/accountManagement/page", { pageNum: 1, pageSize: 9999 }).then((res) => {
- if (res.data.rows && res.data.rows.length > 0) {
- accountList.value = res.data.rows.map((item) => {
- return {
- label: item.alias + " (" + item.name + ")",
- value: item.id,
- };
- });
- formConfig[9].data = accountList.value;
- }
- });
- };
- const gerCurrency = () => {
- return proxy
- .post("/dictTenantData/page", {
- pageNum: 1,
- pageSize: 999,
- tenantId: getUserInfo().tenantId,
- dictCode: "account_currency",
- })
- .then((res) => {
- if (res.data.rows && res.data.rows.length > 0) {
- formConfig[10].data = res.data.rows.map((item) => {
- return {
- label: item.dictValue,
- value: item.dictKey,
- };
- });
- }
- });
- };
- onMounted(() => {
- Promise.all([gerFundsPayment(), gerAccountList(), gerCurrency()]).then(() => {
- if (route.query.id) {
- proxy.post("/accountPayment/detail", { id: route.query.id }).then((res) => {
- formData.data = res.data;
- formData.data.expensesTime = formatDate(new Date(), "yyyy-MM-dd hh:mm:ss");
- formData.data.currencyAmount = formData.data.currency + " " + formData.data.amount;
- let paymentMethodText = "";
- if (formData.data.paymentMethod && fundsPayment.value && fundsPayment.value.length > 0) {
- let list = fundsPayment.value.filter((item) => item.dictKey == formData.data.paymentMethod);
- if (list && list.length > 0) {
- paymentMethodText = list[0].dictValue;
- }
- }
- formData.data.paymentMethodText = paymentMethodText;
- });
- }
- });
- });
- </script>
|