|
@@ -1,39 +1,49 @@
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
|
|
+import { cloneDeep } from 'lodash'
|
|
|
|
|
+
|
|
|
const openDialog = () => {
|
|
const openDialog = () => {
|
|
|
dialogVisible.value = true
|
|
dialogVisible.value = true
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-const dialogVisible = ref(true)
|
|
|
|
|
|
|
+const dialogVisible = ref(false)
|
|
|
const formData = ref({
|
|
const formData = ref({
|
|
|
- Submitter: '',
|
|
|
|
|
|
|
+ submitter: '',
|
|
|
signature: '',
|
|
signature: '',
|
|
|
authorized_email: '',
|
|
authorized_email: '',
|
|
|
authorized_tel: ''
|
|
authorized_tel: ''
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
-const isVerificationError = ref({
|
|
|
|
|
- submitter: false,
|
|
|
|
|
- signature: false,
|
|
|
|
|
- authorized_email: false,
|
|
|
|
|
- authorized_tel: false
|
|
|
|
|
-})
|
|
|
|
|
-
|
|
|
|
|
-const verificationData = () => {
|
|
|
|
|
- const checkField = (field, errorKey) => {
|
|
|
|
|
- const fieldValue = formData.value[field]
|
|
|
|
|
- isVerificationError.value[errorKey] =
|
|
|
|
|
- fieldValue === null || fieldValue === undefined || fieldValue === ''
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- checkField('Submitter', 'submitter')
|
|
|
|
|
- checkField('signature', 'signature')
|
|
|
|
|
- checkField('authorized_email', 'authorized_email')
|
|
|
|
|
- checkField('authorized_tel', 'authorized_tel')
|
|
|
|
|
|
|
+const defaultSetting = ref()
|
|
|
|
|
+const getDefaultSettings = () => {
|
|
|
|
|
+ $api
|
|
|
|
|
+ .getVGMDefaultSet()
|
|
|
|
|
+ .then((res) => {
|
|
|
|
|
+ formData.value = res.data.vgm
|
|
|
|
|
+ defaultSetting.value = cloneDeep(res.data.vgm)
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(() => {})
|
|
|
}
|
|
}
|
|
|
|
|
+getDefaultSettings()
|
|
|
|
|
|
|
|
const handleSave = () => {
|
|
const handleSave = () => {
|
|
|
- // Logic to save the settings
|
|
|
|
|
- dialogVisible.value = false
|
|
|
|
|
|
|
+ $api
|
|
|
|
|
+ .saveVGMDefaultSet(formData.value)
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ defaultSetting.value = cloneDeep(formData.value)
|
|
|
|
|
+ ElMessage.success('Settings saved successfully')
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch(() => {})
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const emit = defineEmits(['close'])
|
|
|
|
|
+const clearData = () => {
|
|
|
|
|
+ formData.value = cloneDeep(defaultSetting.value) || {
|
|
|
|
|
+ submitter: '',
|
|
|
|
|
+ signature: '',
|
|
|
|
|
+ authorized_email: '',
|
|
|
|
|
+ authorized_tel: ''
|
|
|
|
|
+ }
|
|
|
|
|
+ emit('close', cloneDeep(defaultSetting.value))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
defineExpose({
|
|
defineExpose({
|
|
@@ -42,88 +52,67 @@ defineExpose({
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
<template>
|
|
|
- <div>
|
|
|
|
|
- <el-dialog
|
|
|
|
|
- v-model="dialogVisible"
|
|
|
|
|
- title="Default Settings"
|
|
|
|
|
- width="50%"
|
|
|
|
|
- :close-on-click-modal="false"
|
|
|
|
|
- :close-on-press-escape="false"
|
|
|
|
|
- >
|
|
|
|
|
- <div class="form">
|
|
|
|
|
- <div class="form-row">
|
|
|
|
|
- <div class="form-item">
|
|
|
|
|
- <div class="label">
|
|
|
|
|
- Submitter
|
|
|
|
|
- <span class="require-asterisk">*</span>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="content">
|
|
|
|
|
- <el-input
|
|
|
|
|
- :class="{ 'is-error': isVerificationError.submitter }"
|
|
|
|
|
- v-model="formData.Submitter"
|
|
|
|
|
- placeholder="Please enter..."
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="verificationData"
|
|
|
|
|
- ></el-input>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <el-dialog
|
|
|
|
|
+ v-model="dialogVisible"
|
|
|
|
|
+ title="Default Settings"
|
|
|
|
|
+ width="50%"
|
|
|
|
|
+ @closed="clearData"
|
|
|
|
|
+ :close-on-click-modal="false"
|
|
|
|
|
+ :close-on-press-escape="false"
|
|
|
|
|
+ >
|
|
|
|
|
+ <div class="form">
|
|
|
|
|
+ <div class="form-row">
|
|
|
|
|
+ <div class="form-item">
|
|
|
|
|
+ <div class="label">Submitter</div>
|
|
|
|
|
+ <div class="content">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="formData.submitter"
|
|
|
|
|
+ placeholder="Please enter..."
|
|
|
|
|
+ clearable
|
|
|
|
|
+ ></el-input>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="form-item">
|
|
|
|
|
- <div class="label">
|
|
|
|
|
- Signature
|
|
|
|
|
- <span class="require-asterisk">*</span>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="content">
|
|
|
|
|
- <el-input
|
|
|
|
|
- :class="{ 'is-error': isVerificationError.signature }"
|
|
|
|
|
- v-model="formData.signature"
|
|
|
|
|
- placeholder="Please enter..."
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="verificationData"
|
|
|
|
|
- ></el-input>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="form-item">
|
|
|
|
|
+ <div class="label">Signature</div>
|
|
|
|
|
+ <div class="content">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="formData.signature"
|
|
|
|
|
+ placeholder="Please enter..."
|
|
|
|
|
+ clearable
|
|
|
|
|
+ ></el-input>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="form-row">
|
|
|
|
|
- <div class="form-item">
|
|
|
|
|
- <div class="label">
|
|
|
|
|
- Authorized Email
|
|
|
|
|
- <span class="require-asterisk">*</span>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="content">
|
|
|
|
|
- <el-input
|
|
|
|
|
- :class="{ 'is-error': isVerificationError.authorized_email }"
|
|
|
|
|
- v-model="formData.authorized_email"
|
|
|
|
|
- placeholder="Please enter..."
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="verificationData"
|
|
|
|
|
- ></el-input>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="form-row">
|
|
|
|
|
+ <div class="form-item">
|
|
|
|
|
+ <div class="label">Authorized Email</div>
|
|
|
|
|
+ <div class="content">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="formData.authorized_email"
|
|
|
|
|
+ placeholder="Please enter..."
|
|
|
|
|
+ clearable
|
|
|
|
|
+ ></el-input>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="form-item">
|
|
|
|
|
- <div class="label">
|
|
|
|
|
- Authorized Tel
|
|
|
|
|
- <span class="require-asterisk">*</span>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="content">
|
|
|
|
|
- <el-input
|
|
|
|
|
- :class="{ 'is-error': isVerificationError.authorized_tel }"
|
|
|
|
|
- v-model="formData.authorized_tel"
|
|
|
|
|
- placeholder="Please enter..."
|
|
|
|
|
- clearable
|
|
|
|
|
- @blur="verificationData"
|
|
|
|
|
- ></el-input>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="form-item">
|
|
|
|
|
+ <div class="label">Authorized Tel</div>
|
|
|
|
|
+ <div class="content">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="formData.authorized_tel"
|
|
|
|
|
+ placeholder="Please enter..."
|
|
|
|
|
+ clearable
|
|
|
|
|
+ ></el-input>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <template #footer>
|
|
|
|
|
- <el-button class="el-button--default" style="height: 40px" @click="dialogVisible = false"
|
|
|
|
|
- >Cancel</el-button
|
|
|
|
|
- >
|
|
|
|
|
- <el-button @click="handleSave" class="el-button--dark" style="height: 40px">Save</el-button>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-dialog>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <template #footer>
|
|
|
|
|
+ <el-button style="width: 81px" class="el-button--default" @click="dialogVisible = false"
|
|
|
|
|
+ >Cancel</el-button
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-button @click="handleSave" class="el-button--dark" style="width: 86px">Save</el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-dialog>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
@@ -143,13 +132,6 @@ defineExpose({
|
|
|
font-size: 12px;
|
|
font-size: 12px;
|
|
|
line-height: 16px;
|
|
line-height: 16px;
|
|
|
color: var(--dashboard-text-color);
|
|
color: var(--dashboard-text-color);
|
|
|
-
|
|
|
|
|
- .require-asterisk {
|
|
|
|
|
- margin-left: 2px;
|
|
|
|
|
- font-size: 16px;
|
|
|
|
|
- line-height: 16px;
|
|
|
|
|
- color: #c9353f;
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
.content {
|
|
.content {
|
|
|
display: flex;
|
|
display: flex;
|
|
@@ -158,11 +140,6 @@ defineExpose({
|
|
|
.el-input {
|
|
.el-input {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
}
|
|
}
|
|
|
- .is-error {
|
|
|
|
|
- :deep(.el-input__wrapper) {
|
|
|
|
|
- box-shadow: 0 0 0 1px red;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|