gqx лет назад: 2
Родитель
Сommit
d7aabcd388

+ 9 - 1
src/views/system/YezhuList.vue

@@ -35,7 +35,7 @@
                 >新增业主</a-button
               >
               <a-button
-                @click="handleAdd"
+                @click="handleshuilv"
                 style="margin-left: 8px"
                 type="primary"
                 >配置税率</a-button
@@ -119,6 +119,7 @@
       @ok="modalFormOk"
     ></bus-yezhu-modal>
     <user-room-relation-modal ref="UserRoomRelationModal" @ok="modalFormOk"></user-room-relation-modal>
+    <shuilv-modal ref="modalshuilvForm"></shuilv-modal>
   </a-card>
 </template>
   
@@ -126,6 +127,7 @@
 import { JeecgListMixin } from "@/mixins/JeecgListMixin";
 import SysUserModal from "./modules/yezhu/SysUserModal";
 import BusYezhuModal from "./modules/yezhu/BusYezhuModal";
+import shuilvModal from "./modules/yezhu/shuilvModal";
 import UserRoomRelationModal from "./modules/yezhu/UserRoomRelationModal";
 import { filterObj } from "@/utils/util";
 import { getAction } from "@/api/manage";
@@ -136,6 +138,7 @@ export default {
     SysUserModal,
     BusYezhuModal,
     UserRoomRelationModal,
+    shuilvModal
   },
   data() {
     return {
@@ -205,6 +208,11 @@ export default {
   },
   created() {},
   methods: {
+    handleshuilv(){
+      this.$refs.modalshuilvForm.add();
+      this.$refs.modalshuilvForm.title = "税率";
+      this.$refs.modalshuilvForm.disableSubmit = false;
+    },
     handleEdit(record) {
       record.type = 1;
       this.$refs.modalBusYezhuForm.edit(record);

+ 126 - 0
src/views/system/modules/yezhu/shuilvForm.vue

@@ -0,0 +1,126 @@
+<template>
+  <a-spin :spinning="confirmLoading">
+    <j-form-container :disabled="formDisabled">
+      <a-form-model
+        ref="form"
+        :model="model"
+        :rules="validatorRules"
+        slot="detail"
+      >
+        <a-row>
+          <a-col :span="24">
+            <a-form-model-item
+              label="税率"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+              prop="taxRate"
+            >
+              <a-input-number
+                v-model="model.taxRate"
+                placeholder="请输入税率"
+                style="width: 20%"
+              />%
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+      </a-form-model>
+    </j-form-container>
+  </a-spin>
+</template>
+
+<script>
+import { httpAction, getAction } from "@/api/manage";
+import { validateDuplicateValue } from "@/utils/util";
+
+export default {
+  name: "BusYezhuForm",
+  components: {},
+  props: {
+    //表单禁用
+    disabled: {
+      type: Boolean,
+      default: false,
+      required: false,
+    },
+  },
+  data() {
+    return {
+      model: { type: 1 },
+      labelCol: {
+        xs: { span: 24 },
+        sm: { span: 5 },
+      },
+      wrapperCol: {
+        xs: { span: 24 },
+        sm: { span: 16 },
+      },
+      confirmLoading: false,
+      validatorRules: {
+        taxRate: [{ required: true, message: "请输入税率!" }],
+      },
+      url: {
+        add: "/business/busOtherRoomCard/add",
+        edit: "/business/busOtherRoomCard/edit",
+        queryById: "/business/busYezhu/queryById",
+      },
+    };
+  },
+  computed: {
+    formDisabled() {
+      return this.disabled;
+    },
+  },
+  created() {
+    getAction("/business/busOtherRoomCard/queryByHotelId", {}).then((res) => {
+      if (res.success) {
+        this.model = res.result;
+      }
+      //备份model原始值
+      this.modelDefault = JSON.parse(JSON.stringify(this.model));
+    });
+  },
+  methods: {
+    add() {
+      this.edit(this.modelDefault);
+    },
+    edit(record) {
+      this.model = Object.assign({}, record);
+      this.visible = true;
+    },
+    submitForm() {
+      const that = this;
+      // 触发表单验证
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          that.confirmLoading = true;
+          let httpurl = "";
+          let method = "";
+          if (!this.model.id) {
+            httpurl += this.url.add;
+            method = "post";
+            var _info = JSON.parse(localStorage.getItem("storeInfo"));
+            if (_info) {
+              this.model.hotelId = _info.id;
+            }
+          } else {
+            httpurl += this.url.edit;
+            method = "put";
+          }
+          httpAction(httpurl, this.model, method)
+            .then((res) => {
+              if (res.success) {
+                that.$message.success(res.message);
+                that.$emit("ok");
+              } else {
+                that.$message.warning(res.message);
+              }
+            })
+            .finally(() => {
+              that.confirmLoading = false;
+            });
+        }
+      });
+    },
+  },
+};
+</script>

+ 60 - 0
src/views/system/modules/yezhu/shuilvModal.vue

@@ -0,0 +1,60 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="width"
+    :visible="visible"
+    switchFullscreen
+    @ok="handleOk"
+    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+    @cancel="handleCancel"
+    cancelText="关闭">
+    <bus-yezhu-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></bus-yezhu-form>
+  </j-modal>
+</template>
+
+<script>
+
+  import BusYezhuForm from './shuilvForm'
+  export default {
+    name: 'BusYezhuModal',
+    components: {
+      BusYezhuForm
+    },
+    data () {
+      return {
+        title:'',
+        width:800,
+        visible: false,
+        disableSubmit: false
+      }
+    },
+    methods: {
+      add () {
+        this.visible=true
+        this.$nextTick(()=>{
+          this.$refs.realForm.add();
+        })
+      },
+      edit (record) {
+        this.visible=true
+        this.$nextTick(()=>{
+          this.$refs.realForm.edit(record);
+        })
+      },
+      close () {
+        this.$emit('close');
+        this.visible = false;
+      },
+      handleOk () {
+        this.$refs.realForm.submitForm();
+      },
+      submitCallback(){
+        this.$emit('ok');
+        this.visible = false;
+      },
+      handleCancel () {
+        this.close()
+      }
+    }
+  }
+</script>