|
@@ -1,250 +1,148 @@
|
|
|
<template>
|
|
|
- <el-form
|
|
|
- ref="ruleForm"
|
|
|
- :loading="loading"
|
|
|
- :model="ruleForm"
|
|
|
- status-icon
|
|
|
- :size="'mini'"
|
|
|
- :rules="rules"
|
|
|
- label-width="100px"
|
|
|
- style="width: 100%"
|
|
|
- class="demo-ruleForm"
|
|
|
- >
|
|
|
- <el-row>
|
|
|
- <el-col :span="6"
|
|
|
- ><el-form-item label="审核状态" prop="status">
|
|
|
- <el-select
|
|
|
- v-model="ruleForm.status"
|
|
|
- placeholder="请选择审核状态"
|
|
|
- style="width: 100%"
|
|
|
- :size="'mini'"
|
|
|
- :disabled="!(status + '' == '2' && ppowers.some((i) => i == '2'))"
|
|
|
- @change="statusChange"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in statusList"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12" v-show="ruleForm.status + '' === '0'">
|
|
|
- <el-form-item
|
|
|
- label="审核备注"
|
|
|
- :disabled="!(status == '2' && ppowers.some((i) => i == '2'))"
|
|
|
- prop="remark"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- type="textarea"
|
|
|
- :size="'mini'"
|
|
|
- placeholder="请输入审核备注"
|
|
|
- v-model="ruleForm.remark"
|
|
|
- :disabled="disabled"
|
|
|
- maxlength="250"
|
|
|
- :autosize="{ minRows: 2, maxRows: 2 }"
|
|
|
- show-word-limit
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="6" v-if="status == '2' && ppowers.some((i) => i == '2')" class="tr">
|
|
|
- <el-button v-if="!isDetail" :size="'mini'" type="primary" @click="submitForm"
|
|
|
- >保 存
|
|
|
- </el-button>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+ <el-form ref="formRef" class="supplier-form" size="mini" label-width="80px" :model="formData" :rules="rules">
|
|
|
+ <el-form-item label="审核状态" prop="status">
|
|
|
+ <el-select v-model="formData.status" style="width:100%">
|
|
|
+ <el-option v-for="opt in statusOptions" :key="opt.value" :value="opt.value" :label="opt.label" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="审核备注" prop="remark">
|
|
|
+ <el-input v-model="formData.remark" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <template v-if="displayExpressField">
|
|
|
+ <el-form-item label="收货人" prop="contactor">
|
|
|
+ <el-input v-model="formData.contactor" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="联系电话" prop="mobile">
|
|
|
+ <el-input v-model="formData.mobile" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="退货地址" prop="addr_code">
|
|
|
+ <select-area
|
|
|
+ :placeholder="'省/市/区'"
|
|
|
+ :value="formData.addr_code"
|
|
|
+ :is-detail="true"
|
|
|
+ :size="'mini'"
|
|
|
+ @selectChange="addr_selectChange"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
</el-form>
|
|
|
</template>
|
|
|
<script>
|
|
|
-import asyncRequest from "@/apis/service/sellOut/sellAfterApply";
|
|
|
-import resToken from "@/mixins/resToken";
|
|
|
+import { isMobile } from '@/utils/validate'
|
|
|
+
|
|
|
export default {
|
|
|
- name: "sellAfterApplyDetail",
|
|
|
- mixins: [resToken],
|
|
|
- props: ["id", "newTime", "sitem", "show"],
|
|
|
+ name: 'SupplierExam',
|
|
|
+ mixins: [],
|
|
|
+ props: [],
|
|
|
data() {
|
|
|
- return {
|
|
|
- loading: false,
|
|
|
- is_receive: "1",
|
|
|
- status: "",
|
|
|
- statusList: [
|
|
|
- {
|
|
|
- value: "1",
|
|
|
- label: "通过",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "0",
|
|
|
- label: "驳回",
|
|
|
- },
|
|
|
- ],
|
|
|
- is_th_list: [
|
|
|
- {
|
|
|
- value: "1",
|
|
|
- label: "收货人承担",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "2",
|
|
|
- label: "业务公司承担",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "3",
|
|
|
- label: "供应商承担",
|
|
|
- },
|
|
|
- ],
|
|
|
- return_tag_options: [
|
|
|
- {
|
|
|
- value: "1",
|
|
|
- label: "供应商仓库",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "2",
|
|
|
- label: "业务公司仓库",
|
|
|
- },
|
|
|
- ],
|
|
|
+ const validatename = (rule, value, callback) => {
|
|
|
+ if (value === '') {
|
|
|
+ callback(new Error('收件人不能为空!'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const validatemobile = (rule, value, callback) => {
|
|
|
+ if (value === '') {
|
|
|
+ callback(new Error('手机号不能为空!'))
|
|
|
+ } else {
|
|
|
+ if (!isMobile(value)) {
|
|
|
+ callback(new Error('手机号格式不正确!'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- showModelThis: this.showModel,
|
|
|
- ruleForm: {
|
|
|
- status: "1", // 通过or驳回
|
|
|
- is_th: "1", //驳回至
|
|
|
- return_tag: "1",
|
|
|
- remark: "",
|
|
|
+ return {
|
|
|
+ formData: {
|
|
|
+ status: '4',
|
|
|
+ remark: '',
|
|
|
+ contactor: '',
|
|
|
+ mobile: '',
|
|
|
+ addr_code: ''
|
|
|
},
|
|
|
- rulesThis: this.rules,
|
|
|
+ statusOptions: [
|
|
|
+ { value: '4', label: '通过' }, // -> 待客户退货
|
|
|
+ { value: '2', label: '驳回' } // -> 待采购审核
|
|
|
+ ],
|
|
|
rules: {
|
|
|
- status: [
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ displayExpressField() {
|
|
|
+ return this.formData.status === '4'
|
|
|
+ },
|
|
|
+ rules() {
|
|
|
+ return (
|
|
|
+ { status: [
|
|
|
{
|
|
|
required: true,
|
|
|
- message: "请选择审核状态",
|
|
|
- trigger: "change",
|
|
|
- },
|
|
|
+ trigger: 'change',
|
|
|
+ message: '请选择审核状态'
|
|
|
+ }
|
|
|
],
|
|
|
- is_th: [
|
|
|
+ remark: [
|
|
|
{
|
|
|
required: true,
|
|
|
- message: "请选择物流费承担方",
|
|
|
- trigger: "change",
|
|
|
- },
|
|
|
+ trigger: 'change',
|
|
|
+ message: '请输入备注'
|
|
|
+ }
|
|
|
],
|
|
|
- return_tag: [
|
|
|
+ contactor: [
|
|
|
{
|
|
|
required: true,
|
|
|
- message: "请选择退回位置",
|
|
|
- trigger: "change",
|
|
|
- },
|
|
|
+ trigger: 'blur',
|
|
|
+ validator: validatename
|
|
|
+ }
|
|
|
],
|
|
|
- remark: [
|
|
|
- { required: true, message: "请输入审核备注", trigger: "blur" },
|
|
|
+ mobile: [
|
|
|
{
|
|
|
- min: 1,
|
|
|
- max: 250,
|
|
|
- message: "长度在 1 到 250 个字符",
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
+ required: true,
|
|
|
+ trigger: 'blur',
|
|
|
+ validator: validatemobile
|
|
|
+ }
|
|
|
],
|
|
|
- },
|
|
|
- };
|
|
|
- },
|
|
|
- computed: {
|
|
|
- powers() {
|
|
|
- const tran =
|
|
|
- this.$store.getters.btnList.find(
|
|
|
- (item) => item.menu_route == "sellAfterApplyDetail"
|
|
|
- ) || {};
|
|
|
- const { action } = tran ?? {};
|
|
|
- return action ?? [];
|
|
|
- },
|
|
|
- ppowers() {
|
|
|
- const tran =
|
|
|
- this.$store.getters.roleProcess.find((i) => i.process_type === "SHD") || {};
|
|
|
- const { action } = tran ?? {};
|
|
|
- return action ?? [];
|
|
|
- },
|
|
|
+ addr_code: [
|
|
|
+ {
|
|
|
+ type: 'array',
|
|
|
+ required: true,
|
|
|
+ trigger: 'change',
|
|
|
+ message: '请选择省市区'
|
|
|
+ }
|
|
|
+ ] }
|
|
|
+ )
|
|
|
+ }
|
|
|
},
|
|
|
watch: {
|
|
|
- newTime: function (val) {
|
|
|
- if (val) {
|
|
|
- this.initForm();
|
|
|
+ 'formData.status'(newVal) {
|
|
|
+ const newData = {
|
|
|
+ required: newVal === '2',
|
|
|
+ trigger: 'change',
|
|
|
+ message: '请选择审核状态'
|
|
|
}
|
|
|
- },
|
|
|
+
|
|
|
+ console.log(this.rules)
|
|
|
+ }
|
|
|
},
|
|
|
mounted() {
|
|
|
- this.initForm();
|
|
|
},
|
|
|
methods: {
|
|
|
- async initForm() {
|
|
|
- this.loading = true;
|
|
|
- this.rulesThis = this.rules;
|
|
|
- await this.resetForm();
|
|
|
- this.statusChange();
|
|
|
- this.loading = false;
|
|
|
- },
|
|
|
-
|
|
|
- statusChange() {
|
|
|
- this.rulesThis.is_th[0].required =
|
|
|
- this.ruleForm.status + '' === "1" && this.is_receive + '' === "1";
|
|
|
- this.rulesThis.remark[0].required = this.ruleForm.status + '' !== "1";
|
|
|
- },
|
|
|
- async resetForm() {
|
|
|
- // 重置
|
|
|
- await this.$nextTick(() => {
|
|
|
- if (this.$refs.ruleForm) {
|
|
|
- this.$refs.ruleForm.resetFields();
|
|
|
- this.$refs.ruleForm.clearValidate();
|
|
|
- const {
|
|
|
- returnCode,
|
|
|
- is_receive,
|
|
|
- status,
|
|
|
- return_tag,
|
|
|
- is_th,
|
|
|
- remark,
|
|
|
- } = this.sitem;
|
|
|
- this.status = status || "";
|
|
|
- this.is_receive = is_receive || "1";
|
|
|
- this.ruleForm = {
|
|
|
- status: "1", // 通过or驳回
|
|
|
- is_th: is_th || "1", //驳回至
|
|
|
- return_tag: return_tag || "1",
|
|
|
- remark: remark || "",
|
|
|
- returnCode: returnCode || "",
|
|
|
- };
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- async submitForm() {
|
|
|
- await this.$refs.ruleForm.validate(async (valid) => {
|
|
|
- if (valid) {
|
|
|
- if (this.loading) {
|
|
|
- return;
|
|
|
- }
|
|
|
- this.loading = true;
|
|
|
- let model = JSON.parse(JSON.stringify(this.ruleForm));
|
|
|
- model.status = model.status + '' === "1" ? "3" : "6";
|
|
|
- model.is_th = this.is_receive + '' === "0" ? "0" : model.is_th;
|
|
|
- model.return_tag = this.is_receive + '' === "0" ? "0" : model.return_tag;
|
|
|
- model.is_post = "0";
|
|
|
- let res = await asyncRequest.status(model);
|
|
|
- this.loading = false;
|
|
|
- if (res && res.code === 0) {
|
|
|
- this.$notify.success({
|
|
|
- title: "提交成功!",
|
|
|
- message: "",
|
|
|
- });
|
|
|
- this.$emit("refresh");
|
|
|
- } else if (res && res.code >= 100 && res.code <= 104) {
|
|
|
- await this.logout();
|
|
|
- } else {
|
|
|
- this.$message.warning(res.message);
|
|
|
- }
|
|
|
- } else {
|
|
|
- console.log("error submit!!");
|
|
|
- return false;
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- },
|
|
|
-};
|
|
|
+ addr_selectChange(e) {
|
|
|
+ this.formData.addr_code = e || []
|
|
|
+ this.$refs.formRef.validateField('addr_code')
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
-<style lang="scss" scoped></style>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.supplier-form{
|
|
|
+ ::v-deep(.el-form-item){
|
|
|
+ width: 400px;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|