|
@@ -0,0 +1,181 @@
|
|
|
+<template>
|
|
|
+ <el-dialog
|
|
|
+ :title="modalTitle"
|
|
|
+ :visible.sync="modalVisible"
|
|
|
+ :width="formLabelWidth"
|
|
|
+ top="2vh"
|
|
|
+ @close="handleCancel">
|
|
|
+ <div class="mobile">
|
|
|
+ <el-form label-width="90px" :model="form" :rules="rules" ref="from" class="from">
|
|
|
+ <el-form-item label="碳汇量:" prop="orderCarbonAmount">
|
|
|
+ <el-input type="text" v-model="form.orderCarbonAmount" :disabled="limit.isRead"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="购买区域:">
|
|
|
+ <el-cascader
|
|
|
+ ref="areaSelect"
|
|
|
+ v-model="form.area"
|
|
|
+ style="width:100%;"
|
|
|
+ :props="areaProps"
|
|
|
+ clearable
|
|
|
+ ></el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="购买对象:">
|
|
|
+ <el-input type="text" v-model="form.applyCustomName" :disabled="true"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="购买类别:" prop="productTypeGuid">
|
|
|
+ <el-checkbox-group v-model="form.productTypeGuid">
|
|
|
+ <el-checkbox
|
|
|
+ v-for="(item,index) in buyTypeList"
|
|
|
+ :label="item.guid"
|
|
|
+ :key="index"
|
|
|
+ >{{item.type_name}}</el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="handleCancel">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="submit" v-if="!limit.isRead">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { listProductType , areaTree ,createOrder } from "@/api/order/subscription";
|
|
|
+export default {
|
|
|
+ name: 'addMobiel',
|
|
|
+ props: {
|
|
|
+ visible: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false
|
|
|
+ },
|
|
|
+ title: {
|
|
|
+ type: String,
|
|
|
+ default: 'title'
|
|
|
+ },
|
|
|
+ action: {
|
|
|
+ type: String,
|
|
|
+ default: 'add'
|
|
|
+ },
|
|
|
+ selectRow: {
|
|
|
+ type: Object,
|
|
|
+ default:null
|
|
|
+ }
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ visible(newVal, oldVal) {
|
|
|
+ this.modalVisible = newVal;
|
|
|
+ },
|
|
|
+ title(newVal, oldVal) {
|
|
|
+ this.modalTitle = newVal;
|
|
|
+ },
|
|
|
+ action(newVal, oldVal) {
|
|
|
+ this.modalAction = newVal;
|
|
|
+ },
|
|
|
+ selectRow(newVal, oldVal) {
|
|
|
+ this.modalSelectRow = newVal;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ modalTitle: this.title,
|
|
|
+ modalVisible: this.visible,
|
|
|
+ modalAction: this.action,
|
|
|
+ modalSelectRow: this.selectRow,
|
|
|
+ formLabelWidth: '624px',
|
|
|
+ //窗口权限
|
|
|
+ limit: {
|
|
|
+ isRead: false, //是否只读
|
|
|
+ isAdd: false //是否可写
|
|
|
+ },
|
|
|
+ //购买类型
|
|
|
+ buyTypeList:[],
|
|
|
+ //验证
|
|
|
+ rules: {
|
|
|
+ orderCarbonAmount: [{ required: true, message: '购买碳汇量不能为空!', trigger: 'blur' }],
|
|
|
+ productTypeGuid: [{ required: true, message: ' 购买类别不能为空!', trigger: 'blur' }]
|
|
|
+ },
|
|
|
+ //行政区域
|
|
|
+ areaProps:{
|
|
|
+ lazy: true,
|
|
|
+ checkStrictly:false,
|
|
|
+ lazyLoad (node, resolve) {
|
|
|
+ if (node.level === 0) {
|
|
|
+ resolve( [{ label: '重庆市',value:'156050',leaf:false }] );
|
|
|
+ }else{
|
|
|
+ let params = {
|
|
|
+ upCode:node.data.value
|
|
|
+ }
|
|
|
+ areaTree(params).then(res => {
|
|
|
+ const areas = res.retBody.map((value,i) => ({
|
|
|
+ value:value.code,
|
|
|
+ label:value.name,
|
|
|
+ leaf:value.level >= 5
|
|
|
+ }))
|
|
|
+ resolve(areas)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //表单
|
|
|
+ form: {
|
|
|
+ orderType:1,
|
|
|
+ applyCostomerId:'',
|
|
|
+ productTypeGuid:[],
|
|
|
+ area:[]
|
|
|
+ }
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ switch (this.modalAction) {
|
|
|
+ case 'edit':
|
|
|
+ this.limit.isAdd = true;
|
|
|
+ this.form.orderCarbonAmount = this.modalSelectRow.amount
|
|
|
+ this.form.applyCostomerId = this.modalSelectRow.applyCustomerId
|
|
|
+ this.form.guid = this.modalSelectRow.guid
|
|
|
+ this.form.applyCustomName = this.modalSelectRow.applyCustomName
|
|
|
+ this.getType()
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ getType(){
|
|
|
+ listProductType().then(res => {
|
|
|
+ if (res.retHead.errCode === 0) {
|
|
|
+ this.buyTypeList = res.retBody
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //表单提交
|
|
|
+ submit() {
|
|
|
+ this.$refs.from.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ let params = Object.assign({},this.form)
|
|
|
+ params.villageId = params.area.length == 0 ? "" : params.area[4]
|
|
|
+ params.productTypeGuid = params.productTypeGuid.join(';')
|
|
|
+ console.log(params)
|
|
|
+ createOrder(params).then(res => {
|
|
|
+ if (res.retHead.errCode === 0) {
|
|
|
+ this.msgSuccess("操作成功");
|
|
|
+ this.modalVisible = false
|
|
|
+ this.$emit('closeModal', true);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //窗口关闭
|
|
|
+ handleCancel() {
|
|
|
+ this.$emit('closeModal', false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+
|
|
|
+</style>
|