tanghaolin
2025-03-07 d9e68c8234a79ecaa9fb3304caadbc99607715c9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<template>
  <div v-loading="state.m_loadingFormSubmit">
    <el-form ref="ruleFormRef" :model="state.formData" label-width="180px" :rules="state.rules">
      <el-form-item :label="`${t('detailPage.pumpModel.TR')}`" prop="PumpName">
        <el-input v-model="state.formData.PumpName" />
      </el-form-item>
      <el-form-item :label="`${t('detailPage.pumpNumber.TR')}`" prop="PumpNumber">
        <el-input v-model="state.formData.PumpNumber" @input="changeValue" placeholder="" />
      </el-form-item>
      <el-form-item :label="`${t('detailPage.address.TR')}`" prop="Title">
        <el-input v-model="state.formData.Title" />
      </el-form-item>
      <el-form-item :label="`${t('simpleLoginPage.corpName.TR')}`" prop="CustomerName">
        <el-input v-model="state.formData.CustomerName" />
      </el-form-item>
      <el-form-item :label="`${t('detailPage.contactName.TR')}`" prop="UserName">
        <el-input v-model="state.formData.UserName" />
      </el-form-item>
      <el-form-item :label="`${t('detailPage.contactInformation.TR')}`" prop="CustomerContact">
        <el-input v-model="state.formData.CustomerContact" />
      </el-form-item>
      <el-form-item :label="`${t('selectPage.note.TR')}`" prop="Note">
        <el-input v-model="state.formData.Note" type="textarea" :rows="4" />
      </el-form-item>
      <el-form-item>
        <el-button @click="closeDialog">{{ t('detailPage.cancel.TR') }}</el-button>
        <el-button type="primary" @click="submitForm(ruleFormRef)">{{ t('detailPage.submit.TR') }}</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>
<script setup name="InQuiryPrice">
import { ref, reactive, onMounted } from "vue";
import { useI18n } from "vue-i18n";
import {AddFromWeb} from '@/api/detail'
import { ElMessage } from "element-plus";
const { t } = useI18n()
const ruleFormRef = ref('')
const emit = defineEmits(['cbClosePriceDialog'])
let state = reactive({
  m_loadingFormSubmit: false,
  formData: {
    CustomerName: "",
    CustomerContact: "",
    PumpID: "",
    PumpName: "",
    Note: "",
    Title: "",
    UserID: "",
    UserName: "",
    PumpNumber: "",
  },
  rules: {
    CustomerName: [
      { required: true, message: `${t('simpleLoginPage.formValidate.corpName0.TR')}`, trigger: "blur" },
    ],
    CustomerContact: [
      { required: true, message: `${t('detailPage.inquirtFormatte1.TR')}`, trigger: "blur" },
    ],
  }
})
 
 
//初始化获取数据
const initFormData = (formData) => {
  state.formData = formData;
  ruleFormRef.value.clearValidate();
}
//提交表单
const submitForm = (formName) => {
  formName.validate((valid) => {
    if (valid) {
      state.m_loadingFormSubmit = true;
      axiosHelper
        .post({
          version: 3,
          controller: "InquiryPrice",
          action: "AddFromWeb",
          data: state.formData,
          apiUrlType: "main",
          isAddUrlSoftType: "false",
        }).then((res) => {
          if (res.data) {
            state.m_loadingFormSubmit = false;
            ElMessage.success({
              showClose: true,
              message: `${res.data.Message}`,
            });
            closeDialog();
          } else {
            state.m_loadingFormSubmit = false
            ElMessage.error({
              showClose: true,
              message: `${res.data.Message}`,
            });
            // state.isShowInQuiryPriceDialog = false;
          }
        });
    }
  });
}
//回调关闭弹窗
const closeDialog = () => {
  emit("cbClosePriceDialog");
}
//只能输入正整数
const changeValue = (value) => {
  state.formData.PumpNumber = /^[0-9]*$/.test(parseInt(value))
    ? String(parseInt(value)).replace(".", "")
    : "";
}
 
defineExpose({
  initFormData
})
 
 
</script>
<style></style>