Просмотр исходного кода

Merge remote-tracking branch 'vue-insagent-pc/dev'

@dongkboy 3 лет назад
Родитель
Сommit
7973bbb083

+ 219 - 0
src/components/Form/FormConfig.js

@@ -0,0 +1,219 @@
+export default {
+	formItems: [{
+			input: true, //是input
+			label: "input+正则", //字段
+			prop: "input", //字段名
+			placeholder: "请填写手机号", //提示内容
+			width: 12, //参考el-col
+			disabled: false, //是否禁用
+			unit:'单位',
+			rules: [{
+				required: true,
+				message: '联系方式'
+			}] //验证
+		}, {
+			textarea: true, //是input
+			label: "输入框", //字段
+			prop: "textearea", //字段名
+			placeholder: "请填写输入框", //提示内容
+			width: 12, //参考el-col
+			disabled: false, //是否禁用
+			rules: [{
+				required: true,
+				message: '输入框'
+			}, ] //验证
+		},
+		{
+			select: true,
+			label: "选择框",
+			prop: "select",
+			placeholder: "请选择",
+			width: 12, //参考el-col
+			disabled: false,
+			options: [{
+				label: "options1",
+				value: "1"
+			}, {
+				label: "options2",
+				value: "2"
+			}, ],
+			rules: [{
+				required: true,
+				message: '选择框不能为空!'
+			}]
+		}, {
+			searchSelect: true,
+			label: "select搜索框",
+			prop: "searchSelect",
+			placeholder: "请选择",
+			width: 12, //参考el-col
+			disabled: false,
+			options: [],
+			rules: [{
+				required: true,
+				message: 'select搜索框!'
+			}]
+		}, {
+			dateTimeRange: true,
+			label: "年月日时分秒开",
+			prop: "dateTimeRange",
+			width: 12, //参考el-col
+			disabled: false,
+			options: {
+				selectableRange: '18:30:00 - 20:30:00'
+			},
+			rules: [{
+				required: true,
+				message: '年月日时分秒开'
+			}, ]
+		}, {
+			timePicker: true,
+			label: "时分秒选择器",
+			prop: "timePicker",
+			placeholder: "请选择",
+			width: 12, //参考el-col
+			disabled: false,
+			options: "",
+			rules: [{
+				required: true,
+				message: '时分秒选择器'
+			}, ]
+		}, {
+			timePickerIsRange: true,
+			label: "时分秒开始结束",
+			prop: "timePickerIsRange",
+			placeholder: "请选择",
+			width: 12, //参考el-col
+			disabled: false,
+			options: "",
+			rules: [{
+				required: true,
+				message: '时分秒开始结束'
+			}, ]
+		}, {
+			datePicker: true,
+			label: "年月日选择器",
+			prop: "datePicker",
+			placeholder: "请选择",
+			width: 12, //参考el-col
+			disabled: false,
+			options: "",
+			rules: [{
+				required: true,
+				message: '年月日选择器'
+			}, ]
+		}, {
+			datePickerIsRange: true,
+			label: "年月日开始结束",
+			prop: "datePickerIsRange",
+			placeholder: "请选择",
+			width: 12, //参考el-col
+			disabled: false,
+			options: "",
+			rules: [{
+				required: true,
+				message: '年月日开始结束'
+			}, ]
+		}, {
+			dateTime: true,
+			label: " 年月日时分秒",
+			prop: "dateTime",
+			placeholder: "请选择",
+			width: 12, //参考el-col
+			disabled: false,
+			options: "",
+			rules: [{
+				required: true,
+				message: ' 年月日时分秒'
+			}, ]
+		}, {
+			switch: true,
+			label: "switch",
+			prop: "switch",
+			placeholder: "请选择",
+			width: 12, //参考el-col
+			disabled: false,
+			rules: [{
+				required: true,
+				message: 'switch'
+			}, ]
+		}, {
+			radio: true,
+			label: "单选框",
+			prop: "radio",
+			placeholder: "请选择",
+			width: 12, //参考el-col
+			disabled: false,
+			options: [{
+				label: "单选框1",
+				value: "1"
+			}, {
+				label: "单选框2",
+				value: "2"
+			}, ],
+			rules: [{
+				required: true,
+				message: '单选框不能为空'
+			}, ]
+		}, {
+			checkbox: true,
+			label: "复选框",
+			prop: "checkbox",
+			disabled: false,
+			width: 12, //参考el-col
+			options: [{
+				label: "复选框1",
+				value: "1"
+			}, {
+				label: "复选框2",
+				value: "2"
+			}, {
+				label: "复选框3",
+				value: "3"
+			}, ],
+			rules: [{
+				required: true,
+				message: '复选框不能为空'
+			}, ]
+		},
+		{
+			upload: true,
+			label: "文件上传",
+			prop: "upload",
+			disabled: false,
+			uploadObj: {
+				fileType: "2001",
+				limit: 1, //上传长度限制
+				hideUpload: false, //是否隐藏上传框
+ 
+			},
+			rules: [{
+				required: true,
+				message: '文件上传'
+			}, ]
+		},
+		{
+			button: true,
+			label: "按钮",
+			prop: "buttona",
+			placeholder:"发送验证码",
+			width: 12, //参考el-col
+			disabled: false,
+		},
+		{
+			text: true,
+			label: "文本",
+			prop: "text",
+			width: 12, //参考el-col
+			disabled: false,
+		},
+		{
+			quillEditor: true,
+			label: "富文本",
+			prop: "quill",
+			disabled: false,
+		},
+    ],
+    refVerification:'ruleForm',
+	
+}

+ 284 - 0
src/components/Form/MyForm.vue

@@ -0,0 +1,284 @@
+<template>
+    <el-form :model="formData" class="demo-ruleForm" :ref="refVerification" label-position="left" label-width="120px">
+        <el-col v-for=" (formItems, index) in formItems" v-show="!formItems.notShow" :key="index"
+            :span="formItems.width ? formItems.width : 24">
+            <el-form-item :label="formItems.label" :prop="formItems.prop" :rules="formItems.rules">
+                <!-- inupt输入框 -->
+                <el-input v-if="formItems.input" v-model="formData[formItems.prop]" size="small"
+                    :disabled="formItems.disabled" :placeholder="formItems.placeholder"
+                    @input="inputINPUT($event, index, formItems.prop)"
+                    @change="inputChange($event, index, formItems.prop)" />
+                <!-- textarea输入框 -->
+                <el-input v-if="formItems.textarea" v-model="formData[formItems.prop]" size="small" type="textarea"
+                    :rows="formItems.rows" :disabled="formItems.disabled" :placeholder="formItems.placeholder" />
+                <!-- select选择器 -->
+                <el-select v-if="formItems.select" v-model="formData[formItems.prop]" size="small"
+                    :disabled="formItems.disabled" :placeholder="formItems.placeholder"
+                    @change="selectChange($event, index, formItems.prop)">
+                    <el-option v-for="(options, sIndex) in formItems.options" :key="sIndex" :label="options.label"
+                        :value="options.value" />
+                </el-select>
+                <!-- select搜索框 -->
+                <el-select v-if="formItems.searchSelect" v-model="formData[formItems.prop]" size="small"
+                    :disabled="formItems.disabled" filterable remote reserve-keyword :placeholder="formItems.placeholder"
+                    :remote-method="(query) => remoteMethod(query, index, formItems.prop)" :loading="searchSelectLoading"
+                    @change="selectChange($event, index, formItems.prop)">
+                    <el-option v-for="(item, ssIndex) in formItems.options" :key="ssIndex" :label="item.label"
+                        :value="item.value" />
+                </el-select>
+                <!-- 年月日时分秒选择器 -->
+                <el-date-picker v-if="formItems.dateTime" v-model="formData[formItems.prop]"
+                    value-format="yyyy-MM-dd HH:mm:ss" type="datetime" size="small" :disabled="formItems.disabled"
+                    :placeholder="formItems.placeholder" />
+                <!-- 年月日时分秒,开始和结束时间 -->
+                <el-date-picker v-if="formItems.dateTimeRange" v-model="formData[formItems.prop]"
+                    value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" size="small" type="datetimerange"
+                    :disabled="formItems.disabled" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
+                <!-- 时分秒选择器 -->
+                <el-time-picker v-if="formItems.timePicker" v-model="formData[formItems.prop]" value-format="HH:mm:ss"
+                    format="HH:mm:ss" size="small" :disabled="formItems.disabled" :placeholder="formItems.placeholder"
+                    :picker-options="formItems.options" />
+                <!-- 时分秒选择器,开始和结束时间 -->
+                <el-time-picker v-if="formItems.timePickerIsRange" v-model="formData[formItems.prop]"
+                    value-format="HH:mm:ss" format="HH:mm:ss" is-range size="small" :disabled="formItems.disabled"
+                    range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" placeholder="选择时间范围" />
+                <!-- 年月日选择器 -->
+                <el-date-picker v-if="formItems.datePicker" v-model="formData[formItems.prop]" value-format="yyyy-MM-dd"
+                    size="small" :disabled="formItems.disabled" :placeholder="formItems.placeholder" />
+                <!-- 年月日选择器,开始和介绍年月日 -->
+                <el-date-picker v-if="formItems.datePickerIsRange" v-model="formData[formItems.prop]"
+                    value-format="yyyy-MM-dd" type="daterange" size="small" :disabled="formItems.disabled"
+                    :placeholder="formItems.placeholder" range-separator="至" start-placeholder="开始日期"
+                    end-placeholder="结束日期" />
+                <!-- switch开关 -->
+                <el-switch v-if="formItems.switch" v-model="formData[formItems.prop]" size="small"
+                    :disabled="formItems.disabled" @change="formSwitchChange($event, index, formItems.prop)" />
+                <!-- radio单选框 -->
+                <el-radio-group v-if="formItems.radio" v-model="formData[formItems.prop]" :disabled="formItems.disabled">
+                    <el-radio v-for="(options, rIndex) in formItems.options" :key="rIndex" :label="options.label"
+                        :value="options.value" />
+                </el-radio-group>
+                <!-- checkbox复选框 -->
+                <el-checkbox-group v-if="formItems.checkbox" v-model="formData[formItems.prop]"
+                    :disabled="formItems.disabled">
+                    <el-checkbox v-for="options in formItems.options" :key="options.value" :label="options.label" />
+                </el-checkbox-group>
+
+                <!-- 文件上传 -->
+                <!-- 如果对象有值就回显,没有值就为空 -->
+                <el-upload v-if="formItems.upload" :ref="formItems.prop"
+                    :accept="formItems.accept ? formItems.accept : 'PNG,JPEG'"
+                    :file-list="formData[formItems.prop] ? formData[formItems.prop] : []"
+                    :action="`${uploadUrl}${formItems.uploadObj.fileType ? formItems.uploadObj.fileType : ''}`"
+                    :limit="formItems.uploadObj.limit"
+                    :class="{ 'hide': formItems.uploadObj.hideUpload || formData[formItems.prop].length == formItems.uploadObj.limit }"
+                    :on-preview="handlePictureCardPreview"
+                    :on-remove="(file, fileList) => handleRemove(file, fileList, formItems.uploadObj.limit, formItems.prop, index)"
+                    :on-success="(response, file, fileList) => uploadSuccess(response, file, fileList, formItems.uploadObj.limit, formItems.prop, index)"
+                    list-type="picture-card" :auto-upload="true">
+                    <i slot="default" class="el-icon-plus" />
+                </el-upload>
+                <el-dialog v-if="formItems.upload" :visible.sync="dialogVisible" :append-to-body="true" width="40%">
+                    <img width="100%" :src="dialogImageUrl" alt="">
+                </el-dialog>
+
+                <!-- 按钮 -->
+                <el-button v-if="formItems.button" size="small" :disabled="formItems.disabled" :loading="formItems.loading"
+                    :type="formItems.buttonType || 'primary'" @click="buttonClick(formItems.prop, index)">
+                    {{ formItems.placeholder }}
+                </el-button>
+                <!-- text展示 -->
+                <span v-if="formItems.text" v-text="formData[formItems.prop]" />
+                <!-- 计量单位 -->
+                <span v-if="formItems.unit" class="left10">{{ formItems.unit }}</span>
+
+                <!-- 高德地图 -->
+                <!-- <div class="amap_div" v-if="formItems.aMap">
+					<el-input size="small" v-model="formData[formItems.prop]" @input="aMapInput($event,formItems.prop)"></el-input>
+					<ul v-show="searchShow==formItems.prop" class="sreach_ul">
+						<li @click="selectVal(sval,formItems.prop,index)" v-for=" (sval, index) in setSearchVal" :key="index">{{sval.name}}
+							<span style="color:#8591A6 ;font-size: 12px;">{{sval.district}}</span>
+						</li>
+					</ul>
+					<aMap :ref="'aMap'+formItems.prop" :aMapId="'aMapId'+formItems.prop" :location="formData[formItems.prop+'location']" @cbSearch="cbSearch($event,formItems.prop)"></aMap>
+				</div> -->
+
+            </el-form-item>
+        </el-col>
+    </el-form>
+</template>
+<script>
+export default {
+    name: "MyForm",
+    model: {
+        prop: 'modelValue',
+        event: 'update:modelValue',
+    },
+    props: {
+        modelValue: Object,
+        formItems: {
+            type: Array,
+            required: true
+        },
+        searchSelectOptionsCb: {
+            type: Array,
+        },
+        refVerification: {
+            type:String,
+        }
+    },
+    data() {
+        let uploadFileUrl = this.$store.state.user.uploadFileUrl;
+        return {
+            formData: {},
+            uploadUrl: uploadFileUrl,
+            dialogImageUrl: '',
+            searchSelectLoading: false,
+            dialogVisible: false,
+            disabled: false,
+            searchShow: '', //高德地图input收索联想
+            setSearchVal: [], //高德地图赋值搜索内容
+        };
+    },
+    emits: ['update:modelValue'],
+    created() {
+        // 表单初始化
+        for (let item of this.formItems) {
+            // 注意:这里要进行响应式的设置,否则表单控件会无法输入的
+            this.$set(this.formData, item.prop, '')
+        }
+        this.$emit('update:modelValue', this.formData)
+    },
+    watch: {
+        formData: {
+            handler(newValue) {
+            },
+            deep: true,
+        },
+    },
+    methods: {
+        //select变化调用
+        selectChange(value, index, prop) {
+            this.$emit('selectChange', value, index, prop);
+        },
+        // input的input事件
+        inputINPUT(value, index, prop) {
+            this.$emit('inputINPUT', value, index, prop);
+        },
+        // input的change事件
+        inputChange(value, index, prop) {
+            this.$emit('inputChange', value, index, prop);
+        },
+        // 搜索类型select搜索
+        remoteMethod(query, index, prop) {
+            if (query) {
+                this.searchSelectLoading = true;
+                this.$emit('querySelectValue', query, index, prop);
+                setTimeout(() => {
+                    this.formItems[index].options = this.searchSelectOptionsCb;
+                    this.searchSelectLoading = false;
+                }, 500)
+            } else {
+                this.searchSelectOptios = [];
+            }
+        },
+        //switch变化
+        formSwitchChange(val, index, prop) {
+            this.$emit("formSwitchChange", val, index, prop);
+        },
+        //按钮点击事件
+        buttonClick(prop, index) {
+            this.$emit("buttonClick", prop, index);
+        },
+
+        //文件上传成功回调
+        uploadSuccess(response, file, fileList, limit, prop, index) {
+            this.formItems[index].uploadObj.hideUpload = fileList.length == limit;//文件列表变化后判断当前文件列表长度是否等于限制长度。目的,当长度相等时隐藏文件上传按钮
+            this.pushUpload(file, fileList, limit, prop);
+        },
+        //文件删除
+        handleRemove(file, fileList, limit, prop, index) {
+            this.formItems[index].uploadObj.hideUpload = fileList.length == limit;//文件删除后判断当前文件列表长度是否等于限制长度。目的,当长度相等时隐藏文件上传按钮
+            this.pushUpload(file, fileList, limit, prop);
+        },
+        // 文件预览
+        handlePictureCardPreview(file) {
+            this.dialogImageUrl = file.url;
+            this.dialogVisible = true;
+        },
+
+        //提交时验证表单,直接在父级调用
+        submitForm() {
+            let formValidate = Boolean;
+            this.$refs.refVerification.validate((valid) => {
+                if (valid) {
+                    formValidate = true;
+                } else {
+                    this.$message.warning("请把信息填写完整!");
+                    formValidate = false;
+                }
+            });
+            return formValidate;
+        },
+        /* 清空表单
+            逻辑:
+            1 、如果要清空文件上传列表,要传入要清空的upload的字段名,假如多个upload用for循环,调用清空方法!
+            2、清空upload之后,还要把upload上传框展示出来,通过字段名比对,获取到在formItems中的下标,通过下标操作对象属性,进行展示
+         */
+        resetForm(uploadArr) {
+            this.$refs.ruleForm.resetFields();
+            if (uploadArr) {
+                for (let i = 0; i < uploadArr.length; i++) {
+                    this.$refs[uploadArr[i]][0].clearFiles();
+                    let index = this.formItems.findIndex(item => item.prop == uploadArr[i]);
+                    this.formItems[index].uploadObj.hideUpload = false;
+                }
+            }
+        },
+        // 单个字段验证
+        validateFieldProp(prop) {
+            let formValidate = Boolean;
+            this.$refs.ruleForm.validateField(prop, valid => {
+                if (!valid) {
+                    formValidate = true;
+                } else {
+                    formValidate = false;
+                }
+            });
+            return formValidate;
+        },
+        // 对文件上传,删除进行赋值,调用form验证
+        pushUpload(file, fileList, limit, prop) {
+            if (fileList.length > 0) {
+                this.formData[prop] = fileList;
+            } else {
+                // 表示没有数据,把字段置空
+                this.formData[prop] = "";
+            }
+            this.$refs.ruleForm.validateField(prop);//调用验证form表单的文件上传
+        },
+        //地图input的input事件
+        aMapInput(value, prop) {
+            this.$refs[`aMap${prop}`][0].getSearch(value);
+        },
+        //子组件返回地图搜索值
+        cbSearch(val, prop) {
+            this.setSearchVal = val.tips; //子组件
+            this.searchShow = prop; //显示input输入联想
+        },
+        //选中地图值
+        selectVal(val, prop, index) {
+            // 赋值的时候,拿到键,及formItems的下标,进行赋值
+            this.formData[prop] = val.name; //input输入框赋值
+            this.formData.district = val.district; //传入省市区
+            let lngLat = {
+                lng: val.location.lng,
+                lat: val.location.lat
+            };
+            this.formData[`${prop}location`] = lngLat;
+            this.searchShow = ''; //隐藏input输入联想
+        },
+
+    }
+}
+</script>

+ 78 - 0
src/components/Form/index.vue

@@ -0,0 +1,78 @@
+<template>
+    <div>
+      <MyForm ref="publicForm" :formItems="formItems" :formData="formData" :searchSelectOptionsCb="searchSelectOptionsCb"
+        @selectChange="selectChange" @inputINPUT="inputINPUT" @inputChange="inputChange"
+        @querySelectValue="querySelectValue" @formSwitchChange="formSwitchChange" @buttonClick="buttonClick">
+      </MyForm>
+    </div>
+  </template>
+   
+  <script>
+  import MyForm from '../../components/Form/MyForm.vue';
+  import formJs from '@/components/Form/FormConfig.js'
+  export default {
+    components: {
+      MyForm
+    },
+    data() {
+      return {
+        dialog: false, //弹出框
+        formItems: formJs.formItems,
+        formData: {},
+        searchSelectOptionsCb: [], //form表单搜索select返回值
+      };
+    },
+    created() {
+    },
+    watch: {
+      dialog(newVal, oldVal) {
+        if (!newVal) {
+          this.$refs.publicForm.resetForm(); //窗口关闭清空表单
+        }
+      },
+    },
+    methods: {
+      // select选择框变化
+      selectChange(value, index, prop) {
+        console.log(value, index, prop)
+      },
+      // inpuit变化
+      inputINPUT(value, index, prop) {
+        console.log(value, index, prop)
+      },
+      // inpuit Change
+      inputChange(value, index, prop) {
+        console.log(value, index, prop)
+      },
+      // select 搜索值
+      querySelectValue(value, index, prop) {
+        console.log(value, index, prop)
+        let arr = [{
+          label: '搜索返回1号',
+          value: 1
+        }, {
+          label: '搜索返回2号',
+          value: 2
+        }];
+        this.searchSelectOptionsCb = arr;
+      },
+      // form表单switch变化
+      formSwitchChange(val, index, prop) {
+        console.log(val, index, prop)
+      },
+      // 按钮点击
+      buttonClick(index, prop) {
+        console.log(index, prop)
+      },
+      dialogOK() {
+        //判断表单验证是否通过
+        if (this.$refs.publicForm.submitForm()) {
+          console.log("success");
+          console.log(this.formData)
+        } else {
+          console.log("error")
+        }
+      },
+    }
+  }
+  </script>

+ 44 - 44
src/config/global.js

@@ -5,10 +5,10 @@
  */
 
 // 后台管理系统服务器地址
-// export const baseUrl = 'http://192.168.1.7:8080'
-// export const h5BaseUrl = 'http://192.168.1.7:8091'
-// export const baseUrl = 'http://192.168.0.111:8080'
-// export const h5BaseUrl = 'http://192.168.0.111:8091'
+// export const baseUrl = 'http://192.168.0.14:8080'
+// export const h5BaseUrl = 'http://192.168.0.14:8091'
+// export const baseUrl = 'http://192.168.1.111:8080'
+// export const h5BaseUrl = 'http://192.168.1.111:8091'
 //旧服务器
 // export const baseUrl = 'http://test.baoxianzhanggui.com:8080'  
 
@@ -22,57 +22,57 @@ export const h5BaseUrl = 'http://39.98.239.48/h5'  //h5测试
 // export const h5BaseUrl = 'http://sxzgkj.baoxianzhanggui.com/h5'  //h5正式
 //保险公司名称
 export const insCompanyList = [
-	{ name: "华农财险", code: "huanong", icon: "../../static/image/company/huanong.png" },//华农
-	{ name: "恒邦财险", code: "hengbang", icon: "../../static/image/company/hengbang.png" }//恒邦
+  { name: "华农财险", code: "huanong", icon: "../../static/image/company/huanong.png" },//华农
+  { name: "恒邦财险", code: "hengbang", icon: "../../static/image/company/hengbang.png" }//恒邦
 ]
 
 //订单状态
 export const orderStatus = [
-	{ value: 0, label: "报价中" },
-	{ value: 1, label: "待核保" },
-	{ value: 2, label: "已核保" },
-	{ value: 3, label: "核保退回" },
-	{ value: 4, label: "核保不通过" },
-	{ value: 5, label: "已核保待缴费" },
-	{ value: 6, label: "已缴费待配送" },
-	{ value: 7, label: "已承保" },
-	{ value: 99, label: "已关闭" },
+  { value: 0, label: "报价中" },
+  { value: 1, label: "待核保" },
+  { value: 2, label: "已核保" },
+  { value: 3, label: "核保退回" },
+  { value: 4, label: "核保不通过" },
+  { value: 5, label: "已核保待缴费" },
+  { value: 6, label: "已缴费待配送" },
+  { value: 7, label: "已承保" },
+  { value: 99, label: "已关闭" },
 ]
 //订单状态
 export const auditStatus = [
-	{ value: 0, label: "校验待审核" },
-	{ value: 1, label: "校验已审核" }
+  { value: 0, label: "校验待审核" },
+  { value: 1, label: "校验已审核" }
 ]
 export const insureList = [
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "投保", "value": "1" }], kindCode: "A", isMainRisk: true, kindName: "机动车损失险" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "10万", "value": "100000" }, { "label": "15万", "value": "150000" }, { "label": "20万", "value": "200000" }, { "label": "30万", "value": "300000" }, { "label": "50万", "value": "500000" }, { "label": "100万", "value": "1000000" }, { "label": "150万", "value": "1500000" }, { "label": "200万", "value": "2000000" }, { "label": "250万", "value": "2500000" }, { "label": "300万", "value": "3000000" }, { "label": "500万", "value": "5000000" }, { "label": "1000万", "value": "10000000" }], kindCode: "B", isMainRisk: true, kindName: "第三者责任险" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "1万", "value": "10000" }, { "label": "2万", "value": "20000" }, { "label": "5万", "value": "50000" }, { "label": "10万", "value": "100000" }, { "label": "15万", "value": "150000" }, { "label": "20万", "value": "200000" }], kindCode: "D3", isMainRisk: true, kindName: "司机责任险" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "1万", "value": "10000" }, { "label": "2万", "value": "20000" }, { "label": "5万", "value": "50000" }, { "label": "10万", "value": "100000" }, { "label": "15万", "value": "150000" }, { "label": "20万", "value": "200000" }], kindCode: "D4", isMainRisk: true, kindName: "乘客责任险" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "2000", "value": "2000" }, { "label": "5000", "value": "5000" }, { "label": "1万", "value": "10000" }], isMainRisk: false, kindCode: "L", kindName: "车身划痕险", mainRiskCodeList: "A" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ1", kindName: "绝对免赔率特约险(车损)", mainRiskCodeList: "A" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ2", kindName: "绝对免赔率特约险(三者)", mainRiskCodeList: "B" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ3", kindName: "绝对免赔率特约险(司机)", mainRiskCodeList: "D3" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ4", kindName: "绝对免赔率特约险(乘客)", mainRiskCodeList: "D4" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "投保", "value": "1" }], isMainRisk: false, kindCode: "BD", kindName: "法定节假日限额翻倍险", mainRiskCodeList: "B" }
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "投保", "value": "1" }], kindCode: "A", isMainRisk: true, kindName: "机动车损失险" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "10万", "value": "100000" }, { "label": "15万", "value": "150000" }, { "label": "20万", "value": "200000" }, { "label": "30万", "value": "300000" }, { "label": "50万", "value": "500000" }, { "label": "100万", "value": "1000000" }, { "label": "150万", "value": "1500000" }, { "label": "200万", "value": "2000000" }, { "label": "250万", "value": "2500000" }, { "label": "300万", "value": "3000000" }, { "label": "500万", "value": "5000000" }, { "label": "1000万", "value": "10000000" }], kindCode: "B", isMainRisk: true, kindName: "第三者责任险" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "1万", "value": "10000" }, { "label": "2万", "value": "20000" }, { "label": "5万", "value": "50000" }, { "label": "10万", "value": "100000" }, { "label": "15万", "value": "150000" }, { "label": "20万", "value": "200000" }], kindCode: "D3", isMainRisk: true, kindName: "司机责任险" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "1万", "value": "10000" }, { "label": "2万", "value": "20000" }, { "label": "5万", "value": "50000" }, { "label": "10万", "value": "100000" }, { "label": "15万", "value": "150000" }, { "label": "20万", "value": "200000" }], kindCode: "D4", isMainRisk: true, kindName: "乘客责任险" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "2000", "value": "2000" }, { "label": "5000", "value": "5000" }, { "label": "1万", "value": "10000" }], isMainRisk: false, kindCode: "L", kindName: "车身划痕险", mainRiskCodeList: "A" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ1", kindName: "绝对免赔率特约险(车损)", mainRiskCodeList: "A" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ2", kindName: "绝对免赔率特约险(三者)", mainRiskCodeList: "B" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ3", kindName: "绝对免赔率特约险(司机)", mainRiskCodeList: "D3" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ4", kindName: "绝对免赔率特约险(乘客)", mainRiskCodeList: "D4" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "投保", "value": "1" }], isMainRisk: false, kindCode: "BD", kindName: "法定节假日限额翻倍险", mainRiskCodeList: "B" }
 ]
 export const insureList1 = [
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "投保", "value": "1" }], kindCode: "A", isMainRisk: true, kindName: "机动车损失险" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "10万", "value": "100000" }, { "label": "15万", "value": "150000" }, { "label": "20万", "value": "200000" }, { "label": "30万", "value": "300000" }, { "label": "50万", "value": "500000" }, { "label": "100万", "value": "1000000" }, { "label": "150万", "value": "1500000" }, { "label": "200万", "value": "2000000" }, { "label": "250万", "value": "2500000" }, { "label": "300万", "value": "3000000" }, { "label": "500万", "value": "5000000" }, { "label": "1000万", "value": "10000000" }], kindCode: "B", isMainRisk: true, kindName: "第三者责任险" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "1万", "value": "10000" }, { "label": "2万", "value": "20000" }, { "label": "5万", "value": "50000" }, { "label": "10万", "value": "100000" }, { "label": "15万", "value": "150000" }, { "label": "20万", "value": "200000" }], kindCode: "D3", isMainRisk: true, kindName: "司机责任险" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "1万", "value": "10000" }, { "label": "2万", "value": "20000" }, { "label": "5万", "value": "50000" }, { "label": "10万", "value": "100000" }, { "label": "15万", "value": "150000" }, { "label": "20万", "value": "200000" }], kindCode: "D4", isMainRisk: true, kindName: "乘客责任险" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "2000", "value": "2000" }, { "label": "5000", "value": "5000" }, { "label": "1万", "value": "10000" }], isMainRisk: false, kindCode: "L", kindName: "车身划痕险", mainRiskCodeList: "A" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ1", kindName: "绝对免赔率特约险(车损)", mainRiskCodeList: "A" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ2", kindName: "绝对免赔率特约险(三者)", mainRiskCodeList: "B" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ3", kindName: "绝对免赔率特约险(司机)", mainRiskCodeList: "D3" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ4", kindName: "绝对免赔率特约险(乘客)", mainRiskCodeList: "D4" },
-	{ checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "投保", "value": "1" }], isMainRisk: false, kindCode: "BD", kindName: "法定节假日限额翻倍险", mainRiskCodeList: "B" }
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "投保", "value": "1" }], kindCode: "A", isMainRisk: true, kindName: "机动车损失险" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "10万", "value": "100000" }, { "label": "15万", "value": "150000" }, { "label": "20万", "value": "200000" }, { "label": "30万", "value": "300000" }, { "label": "50万", "value": "500000" }, { "label": "100万", "value": "1000000" }, { "label": "150万", "value": "1500000" }, { "label": "200万", "value": "2000000" }, { "label": "250万", "value": "2500000" }, { "label": "300万", "value": "3000000" }, { "label": "500万", "value": "5000000" }, { "label": "1000万", "value": "10000000" }], kindCode: "B", isMainRisk: true, kindName: "第三者责任险" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "1万", "value": "10000" }, { "label": "2万", "value": "20000" }, { "label": "5万", "value": "50000" }, { "label": "10万", "value": "100000" }, { "label": "15万", "value": "150000" }, { "label": "20万", "value": "200000" }], kindCode: "D3", isMainRisk: true, kindName: "司机责任险" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "1万", "value": "10000" }, { "label": "2万", "value": "20000" }, { "label": "5万", "value": "50000" }, { "label": "10万", "value": "100000" }, { "label": "15万", "value": "150000" }, { "label": "20万", "value": "200000" }], kindCode: "D4", isMainRisk: true, kindName: "乘客责任险" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "2000", "value": "2000" }, { "label": "5000", "value": "5000" }, { "label": "1万", "value": "10000" }], isMainRisk: false, kindCode: "L", kindName: "车身划痕险", mainRiskCodeList: "A" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ1", kindName: "绝对免赔率特约险(车损)", mainRiskCodeList: "A" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ2", kindName: "绝对免赔率特约险(三者)", mainRiskCodeList: "B" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ3", kindName: "绝对免赔率特约险(司机)", mainRiskCodeList: "D3" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "5%", "value": "5" }, { "label": "10%", "value": "10" }, { "label": "15%", "value": "15" }, { "label": "20%", "value": "20" }], isMainRisk: false, kindCode: "MJ4", kindName: "绝对免赔率特约险(乘客)", mainRiskCodeList: "D4" },
+  { checked: false, amount: "0", coveragePremium: "", amtList: [{ "label": "不投保", "value": "0" }, { "label": "投保", "value": "1" }], isMainRisk: false, kindCode: "BD", kindName: "法定节假日限额翻倍险", mainRiskCodeList: "B" }
 ]
 export default {
-	baseUrl,
-	h5BaseUrl,
-	insCompanyList,
-	orderStatus,
-	insureList,
-	insureList1,
-	auditStatus
+  baseUrl,
+  h5BaseUrl,
+  insCompanyList,
+  orderStatus,
+  insureList,
+  insureList1,
+  auditStatus
 }

+ 16 - 1
src/http/moudules/letter.js

@@ -262,7 +262,7 @@ export const yongchenggetPolicyPrint = (data) => {
 //恒邦电子保单
 export const hengbanggetPolicyPrint = (data) => {
     return axios({
-        url: "/order/hengBang/getPolicyPrint",
+        url: "/ins/hengbang/getPolicyPrint",
         method: "post",
         data
     })
@@ -345,4 +345,19 @@ export  const findByQuoteNo=(data)=>{
         url:"/ins/taskImage/findByQuoteNo?quoteNo="+data,
         method:"get",
     })
+}
+//续保查询
+export  const queryRenewal=(data)=>{
+    return axios({
+        url:"/order/renewal/queryRenewal",
+        method:"post",
+        data
+    })
+}
+//查询保险公司
+export  const queryCompany=()=>{
+    return axios({
+        url:"/order/renewal/queryCompany",
+        method:"get",
+    })
 }

+ 2 - 3
src/views/HeadBar/HeadBar.vue

@@ -40,8 +40,7 @@
           <!-- 主题切换 -->
           <theme-picker class="theme-picker" :default="themeColor" @onThemeChange="onThemeChange"></theme-picker>
         </el-menu-item>
-     
-        <el-menu-item index="3" v-popover:popover-message>
+        <el-menu-item index="3" v-popover:popover-message> 
           <!-- 我的私信 -->
           <el-badge :value="5" :max="99" class="badge" type="success">
             <li style="color:#fff;" class="fa fa-envelope-o fa-lg"></li>
@@ -118,7 +117,7 @@ export default {
   data() {
     return {
       sum:null,
-      datawidth:1903,
+      datawidth:1920,
       screenWidth: document.body.clientWidth,
       user: {
         id: "",

+ 68 - 3
src/views/Intro/Intro.vue

@@ -1,14 +1,79 @@
 <template>
   <div class="page-container" style="width:100%;margin-top:15px;">
-    一个伟大的项目
+    <!-- <MyForm ref="publicForm" :formItems="formItems" :formData="formData" :refVerification="refVerification" :searchSelectOptionsCb="searchSelectOptionsCb"
+        @selectChange="selectChange" @inputINPUT="inputINPUT" @inputChange="inputChange"
+        @querySelectValue="querySelectValue" @formSwitchChange="formSwitchChange" @buttonClick="buttonClick">
+      </MyForm> -->
   </div>
 </template>
 <script>
+  import MyForm from '../../components/Form/MyForm.vue';
+  import formJs from '@/components/Form/FormConfig.js'
 export default {
   components: {
+    MyForm
   },
-  methods: {
-  }
+  data() {
+      return {
+        // dialog: false, //弹出框
+        // formItems: formJs.formItems,
+        // refVerification:formJs.refVerification,
+        // formData: {},
+        // searchSelectOptionsCb: [], //form表单搜索select返回值
+      };
+    },
+    created() {
+    },
+    watch: {
+      dialog(newVal, oldVal) {
+        if (!newVal) {
+          this.$refs.publicForm.resetForm(); //窗口关闭清空表单
+        }
+      },
+    },
+    methods: {
+      // select选择框变化
+      selectChange(value, index, prop) {
+        console.log(value, index, prop)
+      },
+      // inpuit变化
+      inputINPUT(value, index, prop) {
+        console.log(value, index, prop)
+      },
+      // inpuit Change
+      inputChange(value, index, prop) {
+        console.log(value, index, prop)
+      },
+      // select 搜索值
+      querySelectValue(value, index, prop) {
+        console.log(value, index, prop)
+        let arr = [{
+          label: '搜索返回1号',
+          value: 1
+        }, {
+          label: '搜索返回2号',
+          value: 2
+        }];
+        this.searchSelectOptionsCb = arr;
+      },
+      // form表单switch变化
+      formSwitchChange(val, index, prop) {
+        console.log(val, index, prop)
+      },
+      // 按钮点击
+      buttonClick(index, prop) {
+        console.log(index, prop)
+      },
+      dialogOK() {
+        //判断表单验证是否通过
+        if (this.$refs.publicForm.submitForm()) {
+          console.log("success");
+          console.log(this.formData)
+        } else {
+          console.log("error")
+        }
+      },
+    }
 }
 </script>
 

+ 180 - 104
src/views/Letter/Letter.vue

@@ -50,6 +50,40 @@
     </div>
     <div class="Enclosure flex f-c back">
       <div class="home flex j-s a-c">
+        <div class="flex j-s a-c">
+          <img src="../../../src/icon/insurance.png" alt="" class="icon-img">
+          <span style="margin-left:10px;">快速查询</span>
+        </div>
+        <el-button size="small" type="warning" @click="continuousquery()">
+          <i class="el-icon-search" style="margin-right:1px;"></i>
+          续保查询
+        </el-button>
+      </div>
+      <el-form class="demo-ruleForm" :inline="true" :model="attributionform" ref="continuousform" label-width="130px"
+        size="small" style="margin-top:30px;">
+        <el-row>
+          <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8" :span="8">
+            <el-form-item label="保险公司:" prop="companyId">
+              <el-select v-model="attributionform.companyId" class="widths1" placeholder="请选择保险公司"
+                @change="continuousChange">
+                <el-option v-for="(item, index) in continuousCompanyList" :key="index" :label="item.namesimple"
+                  :value="item.id"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8" :span="8"
+            v-for="(domain, index) in  attributionform.configure" :key="domain.index">
+            <el-form-item :label="domain.label + ':'" :prop="'configure.' + index + '.value'" :rules="{
+              required: true, message: domain.label + '不能为空', trigger: 'blur'
+            }">
+              <el-input class="widths1" v-model="domain.value" :type="domain.type"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <div class="Enclosure flex f-c back">
+      <div class="home flex j-s a-c ">
         <div class="flex j-s a-c color" id="Car">
           <img src="../../../src/icon/car.png" alt="" class="icon-img" />
           <span style="margin-left: 10px">车辆信息</span>
@@ -1057,81 +1091,6 @@
                 </el-form>
               </div>
             </template>
-
-            <template
-              v-if="reslistitem.namesimple == '永诚财险' && reslistitem.checked"
-            >
-              <div class="flex f-c Driving-risk">
-                <h3>意外险</h3>
-                <el-form
-                  :inline="true"
-                  :model="ycDrivingForm"
-                  class="demo-form-inline"
-                  size="small"
-                >
-                  <el-form-item label="产品:" style="margin-right: 30px">
-                    <el-select
-                      clearable
-                      v-model="ycDrivingForm.id"
-                      placeholder="选择产品"
-                      class="widths1"
-                      @change="ycdvchange"
-                      @clear="ycdvclear"
-                    >
-                      <el-option
-                        v-for="(item, index) in yongchengDrivinglist"
-                        :key="index"
-                        :label="item.name"
-                        :value="item.id"
-                      ></el-option>
-                    </el-select>
-                  </el-form-item>
-                  <el-form-item label="份数:">
-                    <el-input-number
-                      v-model="ycDrivingForm.quantity"
-                      @change="quantityaccidentChange"
-                      :min="1"
-                      :max="AccidentMAXnum"
-                    ></el-input-number>
-                  </el-form-item>
-                  <el-form-item
-                    label="单价:"
-                    v-if="premium"
-                    style="margin-left: 30px; color: #606266"
-                  >
-                    <span>{{ ycDrivingForm.quantity * premium }}/份</span>
-                  </el-form-item>
-                  <!-- <el-button type="text">查看详情</el-button> -->
-                  <el-table
-                    class="tablestyle"
-                    :data="tableData"
-                    style="width: 805px; margin-top: 10px"
-                    border
-                    :header-cell-style="{
-                      background: '#F7F7F7',
-                      color: '#909399',
-                      textAlign: 'center',
-                    }"
-                    :cell-style="{ textAlign: 'center' }"
-                    v-if="premium"
-                  >
-                    <el-table-column prop="name" label="险种名称" width="404">
-                    </el-table-column>
-                    <el-table-column
-                      prop="premium"
-                      label="责任保费(元)/每份"
-                      width="200"
-                    ></el-table-column>
-                    <el-table-column
-                      prop="seatSum"
-                      label="每座保额(元)/每份"
-                      width="200"
-                    >
-                    </el-table-column>
-                  </el-table>
-                </el-form>
-              </div>
-            </template>
           </div>
         </div>
       </div>
@@ -2492,6 +2451,27 @@
           >缴费二维码</el-button
         >
       </span>
+
+    </el-dialog>
+    <el-dialog title="转保确认码" :visible.sync="renewalCodedialogVisible" width="400px" style="font-weight:bold;">
+      <div class="flex  a-c u-f-sa" v-if="renewalCodeJqImg">
+        <span>交强转保确认码</span>
+        <div class="flex a-c f-c">
+          <img :src="renewalCodeJqImg" alt="" style="width: 150px;height: 40px;margin-bottom:5px;">
+          <el-input v-model="renewalCodeJq" placeholder="请输入确认码" style="width:150px;"></el-input>
+        </div>
+      </div>
+      <div class="flex  a-c u-f-sa" v-if="renewalCodeSyImg">
+        <span>商业转保确认码</span>
+        <div class="flex a-c f-c">
+          <img :src="renewalCodeSyImg" alt="" style="width: 150px;height: 40px;margin-bottom:5px;">
+          <el-input v-model="renewalCodeSy" placeholder="请输入确认码" style="width:150px;"></el-input>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="renewalCodedialogVisible = false">取 消</el-button>
+        <el-button size="small" type="primary" @click="renewalCodeconfirm">确 定</el-button>
+      </span>
     </el-dialog>
     <el-image-viewer
       v-if="showViewer"
@@ -2544,6 +2524,19 @@ export default {
           //若选择的日期小于等于当前日期(包含今天): time.getTime() > Date.now()
         },
       },
+      attributionform: {//续保查询数据
+        configure: [],
+        companyId: "",
+      },
+      continuousAction: [],//续保配置项
+      //永诚转保确认码
+      cqryCdeJq: "",
+      cqryCdeSy: "",
+      renewalCodeJq: "",//交强确认码
+      renewalCodeSy: "",//商业确认码
+      renewalCodeJqImg: "",//交强图片
+      renewalCodeSyImg: "",//商业图片
+      //-----------------
       showViewer: false,
       transferDateShow: false, //转移登记日期
       yonganchecked: false, //永安驾意险
@@ -2582,14 +2575,15 @@ export default {
       userIndex: 1, //区分三种人员
       TabName: "car", //默认选项卡
       value1: "",
-      chexingdialogVisible: false, //车型选择     显示/隐藏
-      quotedetailsdialogVisible: false, //报价详情     显示/隐藏
-      bjddialogVisible: false, //报价单     显示/隐藏
-      codedialogVisible: false, //二维码     显示/隐藏
-      uploadcardialogVisible: false, //行驶证识别     显示/隐藏
-      uploaduserdialogVisible: false, //身份证识别     显示/隐藏
-      imageUploaddialogVisible: false, //影像上传     显示/隐藏
-      underwritingdialogVisible: false, //核保信息   显示/隐藏
+      chexingdialogVisible: false,//车型选择     显示/隐藏         
+      quotedetailsdialogVisible: false,//报价详情     显示/隐藏
+      bjddialogVisible: false,//报价单     显示/隐藏
+      codedialogVisible: false,//二维码     显示/隐藏
+      uploadcardialogVisible: false,//行驶证识别     显示/隐藏
+      uploaduserdialogVisible: false,//身份证识别     显示/隐藏
+      imageUploaddialogVisible: false,//影像上传     显示/隐藏
+      underwritingdialogVisible: false,//核保信息   显示/隐藏
+      renewalCodedialogVisible: false,//转保确认码输入
       Carinsurance: {
         jqinsurance: "1", //交强险
         syinsurance: "1", //商业险
@@ -2728,8 +2722,12 @@ export default {
         brandName: [
           { required: true, message: "请填写品牌型号", trigger: "blur" },
         ],
-        licenseNo: [{ max: 8, message: "最多八个字符", trigger: "blur" }],
-        frameNo: [{ validator: checkframeNo, trigger: "blur" }],
+        licenseNo: [
+          { max: 8, message: '最多八个字符', trigger: 'blur' },
+        ],
+        frameNo: [
+          { required: true, validator: checkframeNo, trigger: 'blur' }
+        ],
         engineNo: [
           { required: true, message: "请填写发动机号", trigger: "blur" },
         ],
@@ -2787,6 +2785,17 @@ export default {
           },
         ],
       },
+      continuousrules: {
+        companyId: [
+          { required: true, message: "没有选择保险公司", trigger: "blur" },
+        ],
+        licenseNo: [
+          { required: true, message: "请输入车牌号", trigger: "blur" },
+        ],
+        frameNo: [
+          { required: true, message: "请输入车架号", trigger: "blur" }
+        ]
+      },
       CIInsureList: {
         //交强险
         amount: "1",
@@ -3271,7 +3280,8 @@ export default {
           mainRiskCodeList: "B",
         },
       ],
-      totalCompanyList: [],
+      totalCompanyList: [],//报价保险公司
+      continuousCompanyList: [],//续保保险公司
       quoteno: "", //报价号
       orderno: "", //订单号
       queryOrders: "", //核保详情
@@ -3380,16 +3390,15 @@ export default {
       import("element-ui/packages/image/src/image-viewer"),
   },
   created() {
-    this.commpanyList(); //获取保险公司
-    this.defaultcarInfo = JSON.parse(JSON.stringify(this.carInfo));
-    this.defaultownerInfo = JSON.parse(JSON.stringify(this.ownerInfo));
-    this.defaultpolicyHolderInfo = JSON.parse(
-      JSON.stringify(this.policyHolderInfo)
-    );
-    this.defaultinsuredPersonInfo = JSON.parse(
-      JSON.stringify(this.insuredPersonInfo)
-    );
-    this.defaultinsureList = JSON.parse(JSON.stringify(this.insureList));
+    this.$api.letter.queryCompany().then(res => {
+      this.continuousCompanyList = res.data;
+    })
+    this.commpanyList();//获取保险公司
+    this.defaultcarInfo = JSON.parse(JSON.stringify(this.carInfo))
+    this.defaultownerInfo = JSON.parse(JSON.stringify(this.ownerInfo))
+    this.defaultpolicyHolderInfo = JSON.parse(JSON.stringify(this.policyHolderInfo))
+    this.defaultinsuredPersonInfo = JSON.parse(JSON.stringify(this.insuredPersonInfo))
+    this.defaultinsureList = JSON.parse(JSON.stringify(this.insureList))
     //--归属信息获取--
     var userId = Cookies.get("user");
     if (userId == "admin") {
@@ -3455,6 +3464,51 @@ export default {
     }
   },
   methods: {
+    //
+    continuousChange(id) {
+      this.continuousCompanyList.map(ele => {
+        if (ele.id == id) {
+          this.attributionform.configure = [];
+          ele.configure.map((ele, index) => {
+            this.attributionform.configure.push({
+              field: ele.field,
+              isEdit: ele.isEdit,
+              label: ele.label,
+              type: ele.type,
+              value: "",
+            });
+          })
+        }
+      })
+    },
+    //续保查询
+    continuousquery() {
+      this.$api.letter.queryRenewal(this.attributionform).then(res => {
+        if (res.code == '200') {
+          this.carInfo = res.data.carInfo;
+          this.ownerInfo = res.data.ownerInfo;
+          this.policyHolderInfo = res.data.policyHolderInfo;
+          this.insuredPersonInfo = res.data.insuredPersonInfo;
+          res.data.riskList.map(ele => {
+            if (ele.riskCode == '0507') {
+              this.jqchecked = true;
+              this.jqstartDate = ele.startDate;
+              this.jqendDate = ele.endDate;
+
+            } else if (ele.riskCode == '0510') {
+              this.sychecked = true;
+              this.systartDate = ele.startDate;
+              this.syendDate = ele.endDate;
+            }
+          })
+        }
+      })
+    },
+    //永诚转保
+    renewalCodeconfirm() {
+      this.renewalCodedialogVisible = false;
+      this.quote();
+    },
     handleClose(done) {
       this.$confirm("确认关闭?")
         .then((_) => {
@@ -4263,7 +4317,11 @@ export default {
         accidentalDrivingVo: this.ycDrivingForm,
         orderNo: this.orderno,
         companyId: id,
-      };
+        cqryCdeJq: this.cqryCdeJq,
+        cqryCdeSy: this.cqryCdeSy,
+        renewalCodeJq: this.renewalCodeJq,
+        renewalCodeSy: this.renewalCodeSy,
+      }
       this.$api.letter.yongchengquote(params).then((res) => {
         this.totalCompanyList[num].msg = res.msg;
         if (!!res.msg && res.msg.indexOf("不存在有效协议") >= 0) {
@@ -4302,13 +4360,25 @@ export default {
             policyHolderInfo: this.policyHolderInfo,
             kindList: this.kindList,
             riskList: this.riskList,
-          };
-          return this.$api.letter.generateOrder(param).then((res) => {
-            this.yongcheng(num, id);
-          });
-        } else if (!!res.data) {
+          }
+          return this.$api.letter.generateOrder(param).then((res) => { this.yongcheng(num, id) })
+        } else if (res.code == '200') {
           this.totalCompanyList[num].quoteCode = 200;
           this.totalCompanyList[num].result = res.data;
+        } else if (res.code == '101') {
+          this.totalCompanyList[num].quoteCode = '101'
+          this.totalCompanyList[num].msg = res.msg;
+          this.cqryCdeJq = res.data.cqryCdeJq;
+          this.cqryCdeSy = res.data.cqryCdeSy;
+          let jq = res.data.renewalCodeJq.replace(/[\r\n]/g, "");
+          let jqBase64 = `data:image/png;base64,${jq}`;
+          this.renewalCodeJqImg = jqBase64;
+          if (res.data.renewalCodeSy) {
+            let sy = res.data.renewalCodeSy.replace(/[\r\n]/g, "");
+            let syBase64 = `data:image/png;base64,${sy}`;
+            this.renewalCodeSyImg = syBase64;
+          }
+          this.renewalCodedialogVisible = true;
         } else {
           this.totalCompanyList[num].quoteCode = "3";
           this.totalCompanyList[num].msg = res.msg;
@@ -4663,8 +4733,14 @@ export default {
                     _this.$api.letter
                       .yongchengaudit({
                         companyId: companyId,
-                        jqappoint: "",
-                        syappoint: "",
+                      })
+                      _this.cqryCdeJq = '';
+                      _this.cqryCdeSy = '';
+                      _this.renewalCodeJq = '';
+                      _this.renewalCodeSy = '';
+                      _this.$api.letter.getByCompanyId(params).then((res) => {
+                        _this.orderstatus = res.data.orderstatus;//订单状态
+                        _this.underwritingdialogVisible = true;
                       })
                       .then((res) => {
                         if (res.code == "200") {

+ 41 - 6
src/views/Letter/Orderlist.vue

@@ -1405,12 +1405,12 @@ export default {
                                             filename: this.orderInfo.jqpolicyno,
                                             fileurl: res.data.jqUrl,
                                         });
-                                        if(res.data.jqFlagUrl){
+                                        if (res.data.jqFlagUrl) {
                                             this.oldfileList.push({
-                                            fileTitle: "交强电子标志",
-                                            filename: this.orderInfo.jqpolicyno,
-                                            fileurl: res.data.jqFlagUrl,
-                                        });
+                                                fileTitle: "交强电子标志",
+                                                filename: this.orderInfo.jqpolicyno,
+                                                fileurl: res.data.jqFlagUrl,
+                                            });
                                         }
                                     }
                                 })
@@ -1431,6 +1431,33 @@ export default {
                                 })
                             }
                             break;
+                        case "恒邦财险":
+                            if (this.orderInfo.jqpolicyno) {
+                                this.$api.letter.hengbanggetPolicyPrint({
+                                    orderno: this.orderInfo.orderno,
+                                }).then(res => {
+                                    if (res.data) {
+                                        this.oldfileList.push({
+                                            fileTitle: "交强电子保单",
+                                            filename: this.orderInfo.jqpolicyno,
+                                            fileurl: res.data.jqx_policy_url,
+                                        });
+                                        this.oldfileList.push({
+                                            fileTitle: "交强电子标志",
+                                            filename: this.orderInfo.jqpolicyno,
+                                            fileurl: res.data.jqx_flag_url,
+                                        });
+                                    }
+                                    if(res.data.syx_policy_url){
+                                        this.oldfileList.push({
+                                            fileTitle: "商业电子保单",
+                                            filename: this.orderInfo.sypolicyno,
+                                            fileurl: res.data.syx_policy_url,
+                                        });
+                                    }
+                                })
+                            }
+                            break;
                         default:
                     }
                     this.showInsureList = false;
@@ -1506,7 +1533,15 @@ export default {
                 a.download = this.licenseNo + '-' + index.filename + '-' + index.fileTitle;  // 下载文件的名字
                 document.body.appendChild(a)
                 a.click()
-            }else if(this.inscompany == '永诚财险'){
+            } else if (this.inscompany == '永诚财险') {
+                const a = document.createElement('a')
+                a.href = index.fileurl
+                a.target = '_ blank';
+                a.download = this.licenseNo + '-' + index.filename + '-' + index.fileTitle;  // 下载文件的名字
+                document.body.appendChild(a)
+                a.click()
+            }
+            else if (this.inscompany == '恒邦财险') {
                 const a = document.createElement('a')
                 a.href = index.fileurl
                 a.target = '_ blank';

+ 8 - 3
src/views/Sys/Companyconfiguration.vue

@@ -33,10 +33,10 @@
         <el-table size="small" :data="pageResult" height="690" border style="width: 100%" v-loading="loading"
             highlight-current-row stripe
             :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }">
-            <el-table-column prop="id" label="ID" width="300" align="center"></el-table-column>
+            <el-table-column prop="id" label="ID" width="300" align="center"  ></el-table-column>
             <el-table-column prop="insCompanyId" label="保险公司" width="100" align="center"></el-table-column>
             <el-table-column prop="username" label="账号" align="center" width="150"></el-table-column>
-            <el-table-column prop="password" label="密码" align="center" width="200"></el-table-column>
+            <el-table-column prop="password" label="密码" align="center" width="200" ></el-table-column>
             <el-table-column prop="userId" label="操作人" align="center" width="200"></el-table-column>
             <el-table-column label="操作" align="center" min-width="300" fixed="right">
                 <template slot-scope="scope">
@@ -160,6 +160,9 @@ export default {
     created() {
         this.$api.insCompany.attribution(this.pageNum, this.pageSize).then((res) => {
             this.pageResult = res.data.content;
+            this.pageSize=res.data.pageSize;
+            this.pageNum=res.data.pageNum;
+            this.totalSize=res.data.totalSize;
         })
         this.$api.insCompany.findPage(this.pageRequest).then((res) => {
             this.companyselect = res.data.content;
@@ -174,6 +177,7 @@ export default {
         }
     },
     methods: {
+      
         //获取选中节点
         treechange(data, node) {
             var treelist = [];
@@ -202,6 +206,7 @@ export default {
                             value: "",
                         });
                     })
+                    console.log(this.attributionform.fields)
                 } else {
                     this.$message({ message: "暂无信息", type: "warning"});
                 }
@@ -232,7 +237,7 @@ export default {
                         username: this.attributionform.username,
                     }
                     this.$api.insCompany.attributionsave(params).then((res) => {
-                        if (res.code == '200' && !res.msg) {
+                        if (res.code == '200' && !res.msg){
                             this.$message({ message: '保存成功', type: "success" });
                             this.dialogVisible = false;
                         } else {

+ 297 - 0
src/views/Sys/Continuousconfiguration.vue

@@ -0,0 +1,297 @@
+<template>
+    <div class="page">
+        <el-form :inline="true" :model="formInline" class="demo-form-inline" size="small" label-width="130px"
+            style="text-align:center;">
+            <el-row>
+                <el-col :span="6">
+                    <el-form-item label="车牌号">
+                        <el-input v-model="formInline.licenseNo" placeholder="请输入车牌号" class="widths"></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="6">
+                    <el-form-item label="车架号">
+                        <el-input v-model="formInline.frameNo" placeholder="请输入车架号" class="widths"></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="6">
+                    <el-form-item label="订单状态">
+                        <el-select v-model="formInline.orderstatus" class="widths">
+                            <el-option label="待继续" value="0"></el-option>
+                            <el-option label="已核保待缴费" value="5"></el-option>
+                            <el-option label="已承保" value="7"></el-option>
+                            <el-option label="已关闭" value="99"></el-option>
+
+                        </el-select>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="6">
+                    <el-button type="primary" size="small">查询</el-button>
+                    <el-button type="danger" size="small" @click="dialogVisible = true">新增</el-button>
+                </el-col>
+            </el-row>
+        </el-form>
+        <el-table size="small" :data="pageResult" height="690" border style="width: 100%" v-loading="loading"
+            highlight-current-row stripe
+            :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }">
+            <el-table-column prop="id" label="ID" width="300" align="center"></el-table-column>
+            <el-table-column prop="insCompanyId" label="保险公司" width="100" align="center"></el-table-column>
+            <el-table-column prop="username" label="账号" align="center" width="150"></el-table-column>
+            <el-table-column prop="password" label="密码" align="center" width="200"></el-table-column>
+            <el-table-column prop="userId" label="操作人" align="center" width="200"></el-table-column>
+            <el-table-column label="操作" align="center" min-width="300" fixed="right">
+                <template slot-scope="scope">
+                    <el-button size="mini" type="text" @click="CloseEdit(scope.$index, scope.row)">编辑</el-button>
+                    <el-button size="mini" type="text" @click="empowerBtn(scope.$index, scope.row)">授权</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+        <!-- 分页功能 -->
+        <div class="block">
+            <el-pagination @size-change="applyhandleSizeChange" @current-change="applyhandleCurrentChange"
+                :current-page="pageNum" :page-size="pageSize" :page-sizes="[10, 20, 50, 100]"
+                layout="total, sizes, prev, pager, next, jumper" :total="totalSize"></el-pagination>
+        </div>
+        <el-dialog title="渠道信息新增" :visible.sync="dialogVisible" width="70vw">
+            <el-form class="demo-ruleForm" :inline="true" :model="attributionform" ref="attributionform" label-width="130px"
+                size="small" style="margin-top:30px;">
+                <el-row>
+                    <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8" :span="8">
+                        <el-form-item label="保险公司:">
+                            <el-select class="widths1" v-model="attributionform.insCompanyId" @change="companyChange">
+                                <el-option v-for="(item, index) in companyselect" :key="index.id" :label="item.namesimple"
+                                    :value="item.id"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8" :span="8">
+                        <el-form-item prop="username" label="用户名:" :rules="[
+                            { required: true, message: '请输入用户名', trigger: 'blur' },
+                        ]">
+                            <el-input v-model="attributionform.username" class="widths1"></el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8" :span="8">
+                        <el-form-item prop="password" label="密码:" :rules="[
+                            { required: true, message: '请输入密码', trigger: 'blur' },
+                        ]">
+                            <el-input v-model="attributionform.password" class="widths1"></el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8" :span="8"
+                        v-for="(domain, index) in  attributionform.fields" :key="domain.index">
+                        <el-form-item :label="domain.label + ':'" :prop="'fields.' + index + '.value'" :rules="{
+                            required: true, message: domain.label + '不能为空', trigger: 'blur'
+                        }">
+                            <el-input class="widths1" v-model="domain.value" :type="domain.type"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+            </el-form>
+            <span slot="footer" class="dialog-footer">
+                <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+                <el-button size="small" type="primary" @click="submitForm('attributionform')">提 交</el-button>
+            </span>
+        </el-dialog>
+        <el-dialog title="归属授权" :visible.sync="empowerdialogVisible" width="50vw">
+            <div style=" padding:20px;max-height: 500px; overflow-y: auto;">
+                <el-input placeholder="输入关键字进行过滤" v-model="filterText" style="margin-bottom:20px;">
+                </el-input>
+                <el-tree class="filter-tree" :data="treedata" accordion :props="defaultProps" show-checkbox node-key="id"
+                    :filter-node-method="filterNode" ref="tree" @check="treechange">
+                </el-tree>
+            </div>
+            <span slot="footer" class="dialog-footer">
+                <el-button size="mini" @click="empowerdialogVisible = false">取 消</el-button>
+                <el-button size="mini" type="primary" @click="treesubmit()">保 存</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            filterText: '',
+            treedata: [],//树形数据
+            defaultProps: {
+                children: 'children',
+                label: 'name'
+            },
+            loading: false,//加载效果
+            dialogVisible: false,//归属信息弹框
+            empowerdialogVisible: false,//授权弹框
+            pageNum: 1,//页数
+            pageSize: 20,//条数
+            totalSize: null,//总数
+            pageResult: [],//表格数据
+            formInline: {
+                licenseNo: '',//车牌号
+                frameNo: '',//车架号
+                orderstatus: "",//订单状态
+                monthvalue: "",//日期
+            },
+            attributionform: {
+                fields: [],
+                insCompanyId: "",
+                password: "",
+                username: "",
+                id: "",
+            },
+            pageRequest: {
+                "pageNum": 1,
+                "pageSize": 20,
+                "columnFilters": {
+                    "parentId":
+                    {
+                        "name": "parentId",
+                        "value": "0"
+                    }
+                }
+            },
+            companyselect: [],
+            fieldslist: [],
+            treeparams: {
+                deptIds: [],
+                attributionId: "",
+                insCompanyId: "",
+            }
+        }
+    },
+    created() {
+        this.$api.insCompany.attribution(this.pageNum, this.pageSize).then((res) => {
+            this.pageResult = res.data.content;
+            this.pageSize=res.data.pageSize;
+            this.pageNum=res.data.pageNum;
+            this.totalSize=res.data.totalSize;
+        })
+        this.$api.insCompany.findPage(this.pageRequest).then((res) => {
+            this.companyselect = res.data.content;
+        })
+        this.$api.dept.findDeptTree().then((res) => {
+            this.treedata = res.data;
+        })
+    },
+    watch: {
+        filterText(val) {
+            this.$refs.tree.filter(val);
+        }
+    },
+    methods: {
+        //获取选中节点
+        treechange(data, node) {
+            var treelist = [];
+            node.checkedKeys.map(ele => {
+                treelist.push(ele);
+            })
+            this.treeparams.deptIds = treelist;
+        },
+        //节点过滤
+        filterNode(value, data) {
+            console.log(value, data)
+            if (!value) return true;
+            return data.name.indexOf(value) !== -1;
+        },
+        //选择保险公司获取归属模板
+        companyChange(e) {
+            this.$api.insCompany.attributionTemplate(e).then((res) => {
+                if (res.data) {
+                    this.fieldslist = JSON.parse(res.data.fields);
+                    this.fieldslist.map((ele, index) => {
+                        this.attributionform.fields.push({
+                            field: ele.field,
+                            isEdit: ele.isEdit,
+                            label: ele.label,
+                            type: ele.type,
+                            value: "",
+                        });
+                    })
+                } else {
+                    this.$message({ message: "暂无信息", type: "warning"});
+                }
+            })
+        },
+        //提交授权
+        treesubmit() {
+            if (this.treeparams.deptIds.length > 0) {
+                this.$api.insCompany.authorize(this.treeparams).then((res) => {
+                    if(res.code=='200'){
+                        this.$message({ message: "保存成功", type: "success" });
+                        this.empowerdialogVisible=false;
+                    }
+                })
+            } else {
+                this.$message({ message: "未选择归属机构", type: "warning" });
+            }
+        },
+        //提交表单
+        submitForm(formName) {
+            this.$refs[formName].validate((valid) => {
+                if (valid) {
+                    let params = {
+                        fields: JSON.stringify(this.attributionform.fields),
+                        id: this.attributionform.id,
+                        insCompanyId: this.attributionform.insCompanyId,
+                        password: this.attributionform.password,
+                        username: this.attributionform.username,
+                    }
+                    this.$api.insCompany.attributionsave(params).then((res) => {
+                        if (res.code == '200' && !res.msg) {
+                            this.$message({ message: '保存成功', type: "success" });
+                            this.dialogVisible = false;
+                        } else {
+                            this.$message({ message: res.msg, type: "warning" });
+                        }
+                    })
+                } else {
+                    this.$message({ message: "请检查信息", type: "warning" });
+                    return false;
+                }
+            });
+        },
+        //授权操作
+        empowerBtn(index, row) {
+            this.empowerdialogVisible = true;
+            this.treeparams.attributionId = row.id;
+            this.treeparams.insCompanyId = row.insCompanyId;
+        },
+        //编辑操作 
+        CloseEdit(index, row) {
+            let fileslist = JSON.parse(row.fields);
+            this.attributionform = {
+                fields: fileslist,
+                id: row.id,
+                insCompanyId: row.insCompanyId,
+                password: row.password,
+                username: row.username,
+            };
+            this.dialogVisible = true;
+        },
+        // 设置每页条数
+        applyhandleSizeChange(val) {
+            this.pageSize = val;
+            this.pageNum = 1;
+            this.pageRequest.pageNum = 1;
+            this.pageRequest.pageSize = val;
+            this.findPage();
+        },
+        // 当前页
+        applyhandleCurrentChange(val) {
+            this.pageNum = val;
+            this.pageRequest.pageNum = val;
+            this.findPage();
+        },
+
+    }
+}
+</script>
+<style>
+.saomazhifucodeClass .el-dialog__body,
+.saomazhifucodeClass .el-dialog__header {
+    padding: 0;
+}
+</style>
+<style scoped>
+.widths1 {
+    width: 250px;
+}
+</style>

+ 1 - 2
src/views/Sys/Deptall.vue

@@ -265,8 +265,7 @@
         }}</el-button>
       </span>
     </el-dialog>
-
-    <!-- 新增修改界面 -->
+    <!-- 新增修改界面 --> 
     <el-dialog
       :title="dialogTitle"
       width="1000px"