forked from qiushanhe/dm-manage-web
修改
This commit is contained in:
@@ -10,7 +10,6 @@ export default {
|
||||
const { value } = binding;
|
||||
const all_permission = '*:*:*';
|
||||
const permissions = store.getters && store.getters.permissions;
|
||||
|
||||
if (value && value instanceof Array && value.length > 0) {
|
||||
const permissionFlag = value;
|
||||
|
||||
|
||||
@@ -73,20 +73,10 @@ export function addDateRange(params, dateRange, propName) {
|
||||
|
||||
// 回显数据字典
|
||||
export function selectDictLabel(datas, value) {
|
||||
if (value === undefined) {
|
||||
if (value == undefined) {
|
||||
return '';
|
||||
}
|
||||
var actions = [];
|
||||
Object.keys(datas).some((key) => {
|
||||
if (datas[key].value === '' + value) {
|
||||
actions.push(datas[key].label);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
if (actions.length === 0) {
|
||||
actions.push(value);
|
||||
}
|
||||
return actions.join('');
|
||||
return datas.find((item) => item.dictValue == value).dictLabel;
|
||||
}
|
||||
|
||||
// 回显数据字典(字符串数组)
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
<el-button v-hasPermi="['sch:classType:add']" type="primary" icon="el-icon-plus" @click="handleAdd">新增</el-button>
|
||||
<el-button v-hasPermi="['sch:classType:remove']" type="danger" icon="el-icon-delete" :disabled="multiple" @click="handleDelete">删除</el-button>
|
||||
<el-button v-hasPermi="['sch:classType:clone']" type="primary" icon="el-icon-copy" :disabled="multiple" @click="handleClone">克隆</el-button>
|
||||
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-row>
|
||||
@@ -41,13 +40,13 @@
|
||||
|
||||
<el-table-column type="index" width="50" />
|
||||
<el-table-column label="驾校" prop="schoolName" />
|
||||
<el-table-column label="场地" prop="placeName" />
|
||||
<el-table-column label="场地" prop="placeName" min-width="200" />
|
||||
<el-table-column label="班型名称" prop="typeName" />
|
||||
<el-table-column label="驾照类型" prop="licenseType" :formatter="licenseTypeFormat" width="80" />
|
||||
<!-- <el-table-column label="原价" prop="originalPrice" /> -->
|
||||
<el-table-column label="报价" prop="currentPrice" width="60" />
|
||||
<el-table-column label="底价" prop="minPrice" width="60" />
|
||||
<el-table-column label="描述" prop="description" />
|
||||
<el-table-column label="描述" prop="description" min-width="200" show-overflow-tooltip />
|
||||
<el-table-column label="状态" prop="status" :formatter="statusFormat" width="80" />
|
||||
<el-table-column label="创建时间" width="160">
|
||||
<template slot-scope="scope">
|
||||
@@ -441,7 +440,7 @@ export default {
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(function () {});
|
||||
.catch(function () { });
|
||||
},
|
||||
handleClone() {
|
||||
this.cloneOpen = true;
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
<template slot-scope="scope">
|
||||
<el-button v-hasPermi="['sch:school:edit']" type="text" icon="el-icon-edit" @click="addOrUpdateHandle(scope.row)">修改</el-button>
|
||||
<el-button v-hasPermi="['sch:school:remove']" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
@@ -25,23 +25,19 @@
|
||||
<right-toolbar :show-search.sync="showSearch" @queryTable="getList" />
|
||||
</el-row>
|
||||
|
||||
<el-table v-if="refreshTable" v-loading="loading" :data="deptList" row-key="deptId" :default-expand-all="isExpandAll" :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
|
||||
<el-table v-if="refreshTable" v-loading="loading" :data="deptList" row-key="deptId" :default-expand-all="isExpandAll" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
|
||||
<el-table-column prop="deptName" label="部门名称" width="260" />
|
||||
<el-table-column prop="orderNum" label="排序" width="200" />
|
||||
<el-table-column prop="areaList" label="所属区域" width="200" />
|
||||
<el-table-column prop="status" label="状态" width="100">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="200">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="备注" width="200" show-overflow-tooltip />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-hasPermi="['system:dept:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
|
||||
<el-button v-hasPermi="['system:dept:add']" size="mini" type="text" icon="el-icon-plus" @click="handleAdd(scope.row)">新增</el-button>
|
||||
<el-button v-hasPermi="['system:dept:add']" size="mini" type="text" icon="el-icon-plus" @click="handleAdd(scope.row)">新增子部门</el-button>
|
||||
<el-button v-if="scope.row.parentId != 0" v-hasPermi="['system:dept:remove']" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -56,8 +52,6 @@
|
||||
<treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级部门" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="部门名称" prop="deptName">
|
||||
<el-input v-model="form.deptName" placeholder="请输入部门名称" />
|
||||
@@ -68,8 +62,6 @@
|
||||
<el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="负责人" prop="leader">
|
||||
<el-input v-model="form.leader" placeholder="请输入负责人" maxlength="20" />
|
||||
@@ -80,13 +72,6 @@
|
||||
<el-input v-model="form.phone" placeholder="请输入联系电话" maxlength="11" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="邮箱" prop="email">
|
||||
<el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="部门状态">
|
||||
<el-radio-group v-model="form.status">
|
||||
@@ -94,6 +79,18 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属区域" prop="areaList">
|
||||
<el-select v-model="form.areaList" placeholder="请选择" filterable multiple>
|
||||
<el-option label="区域1" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注">
|
||||
<el-input v-model="form.remark" placeholder="请输入" type="textarea" :autosize="{ minRows: 3 }" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
@@ -156,6 +153,13 @@ export default {
|
||||
message: '请输入正确的手机号码',
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
areaList: [
|
||||
{
|
||||
required: true,
|
||||
message: '所属区域不能为空',
|
||||
trigger: 'blur,change'
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
@@ -198,7 +202,8 @@ export default {
|
||||
leader: undefined,
|
||||
phone: undefined,
|
||||
email: undefined,
|
||||
status: '0'
|
||||
status: '0',
|
||||
areaList: []
|
||||
};
|
||||
this.resetForm('form');
|
||||
},
|
||||
@@ -278,7 +283,7 @@ export default {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess('删除成功');
|
||||
})
|
||||
.catch(() => {});
|
||||
.catch(() => { });
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -16,11 +16,6 @@
|
||||
<el-form-item prop="userOrPhone">
|
||||
<el-input v-model="queryParams.employeeName" placeholder="请输入姓名/手机号" clearable style="width: 240px" @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item prop="status">
|
||||
<el-select v-model="queryParams.status" placeholder="用户状态" clearable>
|
||||
<el-option v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="入职时间">
|
||||
<el-date-picker v-model="queryParams.hiredate" style="width: 240px" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" />
|
||||
</el-form-item>
|
||||
@@ -43,7 +38,10 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="260">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-hasPermi="['system:employee:edit']" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
|
||||
<el-button v-hasPermi="['system:employee:edit']" type="text" @click="handleUpdate(scope.row)">修改</el-button>
|
||||
<el-button v-hasPermi="['system:employee:logoff']" type="text" @click="handleLogoff(scope.row)">注销</el-button>
|
||||
<el-button v-hasPermi="['system:employee:release']" type="text" @click="handleRelease(scope.row)">释放线索</el-button>
|
||||
<el-button v-hasPermi="['system:employee:remove']" type="text" @click="handleRemove(scope.row)">删除</el-button>
|
||||
<!-- <el-button
|
||||
v-hasPermi="['system:employee:resetPwd']"
|
||||
type="text"
|
||||
@@ -54,7 +52,7 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
|
||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
@@ -72,85 +70,50 @@
|
||||
<el-input v-model="form.phone" placeholder="请输入手机号码" maxlength="11" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="角色" prop="roleIdList">
|
||||
<el-select v-model="form.roleIdList" multiple placeholder="请选择">
|
||||
<el-select v-model="form.roleIdList" multiple placeholder="请选择" class="wp100">
|
||||
<el-option v-for="item in roleOptions" :key="item.id" :label="item.name" :value="item.id" :disabled="item.status == 1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="归属部门" prop="orgId">
|
||||
<treeselect v-model="form.orgId" :options="deptOptions" :disable-branch-nodes="true" :show-count="true" placeholder="请选择归属部门" />
|
||||
<treeselect v-model="form.orgId" class="wp100" :options="deptOptions" :disable-branch-nodes="true" :show-count="true" placeholder="请选择归属部门" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属区域" prop="areaList">
|
||||
<el-select v-model="form.areaList" multiple placeholder="请选择">
|
||||
<el-option v-for="dict in areaOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="权重" prop="weight">
|
||||
<el-input v-model="form.weight" placeholder="权重,1-100" type="number" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="用户性别">
|
||||
<el-select v-model="form.sex" placeholder="请选择">
|
||||
<el-select v-model="form.sex" placeholder="请选择" class="wp100">
|
||||
<el-option v-for="dict in sexOptions" :key="dict.dictValue" :label="dict.dictLabel" :value="dict.dictValue" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="入职日期">
|
||||
<el-date-picker v-model="form.hiredate" :editable="false" type="date" value-format="yyyy-MM-dd" placeholder="请选择入职时间" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="上级领导">
|
||||
<el-select v-model="form.leader" placeholder="请选择">
|
||||
<el-option v-for="dict in userOptions" :key="dict.id" :label="dict.name" :value="dict.id" />
|
||||
</el-select>
|
||||
<el-date-picker v-model="form.hiredate" :editable="false" type="date" value-format="yyyy-MM-dd" placeholder="请选择入职时间" style="width: 100%;" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="状态">
|
||||
<el-radio-group v-model="form.status">
|
||||
<el-radio-group v-model="form.status" class="wp100">
|
||||
<el-radio v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictValue">{{ dict.dictLabel }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否释放线索">
|
||||
<el-radio-group v-model="form.discardClue">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="最大线索数">
|
||||
<el-input v-model="form.maxClueNum" />
|
||||
<el-input v-model="form.maxClueNum" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否考勤">
|
||||
<el-radio-group v-model="form.checkin">
|
||||
<el-radio-group v-model="form.checkin" class="wp100">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
@@ -158,21 +121,12 @@
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否参与统计">
|
||||
<el-radio-group v-model="form.count">
|
||||
<el-radio-group v-model="form.count" class="wp100">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="所属报名点">
|
||||
<el-select v-model="form.officeId" placeholder="请选择">
|
||||
<el-option v-for="dict in officeOptions" :key="dict.officeId" :label="dict.officeName" :value="dict.officeId" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="12">
|
||||
<el-form-item label="小程序权限">
|
||||
<el-radio-group v-model="form.hasStudent">
|
||||
@@ -189,13 +143,10 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注">
|
||||
<!-- <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input> -->
|
||||
<editor v-model="form.remark" />
|
||||
<editor v-model="form.remark" :height="200" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -210,7 +161,6 @@
|
||||
|
||||
<script>
|
||||
import empAPi from '@/api/system/employee';
|
||||
import { listOffice } from "@/api/zs/office";
|
||||
import { deptTreeSelect } from '@/api/system/dept';
|
||||
import { getRoleOptions } from '@/api/system/role';
|
||||
import { resetUserPwd } from '@/api/system/user';
|
||||
@@ -280,13 +230,6 @@ export default {
|
||||
trigger: 'blur,change'
|
||||
}
|
||||
],
|
||||
areaList: [
|
||||
{
|
||||
required: true,
|
||||
message: '所属区域不能为空',
|
||||
trigger: 'blur,change'
|
||||
}
|
||||
],
|
||||
weight: [
|
||||
{
|
||||
required: true,
|
||||
@@ -304,8 +247,7 @@ export default {
|
||||
]
|
||||
},
|
||||
userOptions: [],
|
||||
areaOptions: [],
|
||||
officeOptions: []
|
||||
areaOptions: []
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
@@ -340,7 +282,6 @@ export default {
|
||||
// })
|
||||
}
|
||||
});
|
||||
this.getOffices();
|
||||
},
|
||||
methods: {
|
||||
/** 查询用户列表 */
|
||||
@@ -456,7 +397,7 @@ export default {
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm: function () {
|
||||
submitForm() {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
this.$set(this.form, 'deptId', this.$store.getters.schoolId);
|
||||
@@ -480,14 +421,39 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
//查询报名点
|
||||
getOffices() {
|
||||
listOffice().then(resp => {
|
||||
if (resp.code == 200) {
|
||||
this.officeOptions = resp.rows
|
||||
}
|
||||
})
|
||||
handleLogoff(row) {
|
||||
this.$confirm('注销后将立即释放线索,并禁用该员工,是否确认注销?', '警告', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(function () {
|
||||
// 走释放线索逻辑,并禁用该用户
|
||||
}).then(() => {
|
||||
this.msgSuccess('注销成功!');
|
||||
});
|
||||
},
|
||||
handleRelease(row) {
|
||||
this.$confirm('是否立刻释放该员工拥有的线索?', '警告', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(function () {
|
||||
// 应该只释放未成交的线索
|
||||
}).then(() => {
|
||||
this.msgSuccess('释放成功!');
|
||||
});
|
||||
},
|
||||
handleRemove(row) {
|
||||
this.$confirm('是否删除该员工,建议只在数据错误时删除?', '警告', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(function () {
|
||||
// 检查一下,如果被使用,提示不可删除
|
||||
}).then(() => {
|
||||
this.msgSuccess('删除成功!');
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@@ -497,6 +463,7 @@ export default {
|
||||
cursor: pointer;
|
||||
color: #409eff;
|
||||
}
|
||||
|
||||
.el-icon-arrow-down {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" :inline="true" label-width="60px" size="mini">
|
||||
<el-form-item label="员工" prop="userId" v-hasPermi="['system:task:send']">
|
||||
<el-form ref="queryForm" :model="queryParams" :inline="true" label-width="60px" size="mini">
|
||||
<el-form-item v-hasPermi="['system:task:send']" label="员工" prop="userId">
|
||||
<el-select v-model="queryParams.userId" placeholder="请选择" size="mini">
|
||||
<el-option v-for="dict in userOptions" :key="dict.id" :label="dict.name" :value="dict.id" />
|
||||
</el-select>
|
||||
@@ -24,7 +24,7 @@
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
<el-button type="primary" icon="el-icon-plus" v-hasPermi="['system:summary:add']" size="mini" @click="handleAdd()">新增</el-button>
|
||||
<el-button v-hasPermi="['system:summary:add']" type="primary" icon="el-icon-plus" size="mini" @click="handleAdd()">新增</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="月份" align="center" prop="month" />
|
||||
= <el-table-column label="日期" align="center" prop="day" width="100" />
|
||||
<el-table-column label="日期" align="center" prop="day" width="100" />
|
||||
<el-table-column label="内容" align="center" min-width="100">
|
||||
<template slot-scope="scope">
|
||||
<div v-html="scope.row.content" />
|
||||
@@ -49,12 +49,12 @@
|
||||
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" v-hasPermi="['system:summary:edit']" @click="handleUpdate(scope.row)">修改</el-button>
|
||||
<el-button v-hasPermi="['system:summary:edit']" size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
|
||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
|
||||
|
||||
<!-- 添加或修改公告对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
|
||||
@@ -82,7 +82,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24" v-if="form.summaryType === 2">
|
||||
<el-col v-if="form.summaryType === 2" :span="24">
|
||||
<el-form-item label="日期" prop="day">
|
||||
<el-date-picker v-model="form.day" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" :disabled="dayEdit" />
|
||||
</el-form-item>
|
||||
@@ -90,8 +90,8 @@
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item label="任务内容" prop="content">
|
||||
<!-- <editor v-model="form.content" /> -->
|
||||
<el-input type="textarea" :rows="13" v-model="form.content"></el-input>
|
||||
<editor v-model="form.content" />
|
||||
<!-- <el-input v-model="form.content" type="textarea" :rows="13" /> -->
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -103,16 +103,16 @@
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { saveTask, getList } from '@/api/system/summary'
|
||||
import Editor from '@/components/Editor'
|
||||
import empAPi from '@/api/system/employee'
|
||||
|
||||
<script>
|
||||
import { saveTask, getList } from '@/api/system/summary';
|
||||
import Editor from '@/components/Editor';
|
||||
import empAPi from '@/api/system/employee';
|
||||
|
||||
export default {
|
||||
name: 'Summary',
|
||||
components: {
|
||||
Editor,
|
||||
Editor
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -133,7 +133,7 @@ export default {
|
||||
userId: undefined,
|
||||
summaryType: 1,
|
||||
month: undefined,
|
||||
day: undefined,
|
||||
day: undefined
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
@@ -143,42 +143,42 @@ export default {
|
||||
month: [{ required: true, message: '月份不能为空', trigger: 'blur' }],
|
||||
day: [{ required: true, message: '日期不能为空', trigger: 'blur' }],
|
||||
content: [
|
||||
{ required: true, message: '任务内容不能为空', trigger: 'blur' },
|
||||
{ required: true, message: '任务内容不能为空', trigger: 'blur' }
|
||||
],
|
||||
summaryType: [{ required: true, message: '总结类型不能为空', trigger: 'blur' }],
|
||||
summaryType: [{ required: true, message: '总结类型不能为空', trigger: 'blur' }]
|
||||
},
|
||||
taskType: 1,
|
||||
userOptions: [],
|
||||
month: undefined,
|
||||
day: undefined,
|
||||
dayEdit: false,
|
||||
userId: localStorage.getItem('userId'),
|
||||
}
|
||||
userId: localStorage.getItem('userId')
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
this.getEmployee()
|
||||
let now = new Date()
|
||||
let year = now.getFullYear() //得到年份
|
||||
let month = now.getMonth() + 1 //得到月份
|
||||
let date = now.getDate() //得到日期
|
||||
this.month = month
|
||||
this.day = year + '-' + month + '-' + date
|
||||
this.getList();
|
||||
this.getEmployee();
|
||||
const now = new Date();
|
||||
const year = now.getFullYear(); // 得到年份
|
||||
const month = now.getMonth() + 1; // 得到月份
|
||||
const date = now.getDate(); // 得到日期
|
||||
this.month = month;
|
||||
this.day = year + '-' + month + '-' + date;
|
||||
},
|
||||
methods: {
|
||||
/** 查询公告列表 */
|
||||
getList() {
|
||||
this.loading = true
|
||||
this.loading = true;
|
||||
getList(this.queryParams).then((response) => {
|
||||
this.taskList = response.rows
|
||||
this.total = response.total
|
||||
this.loading = false
|
||||
})
|
||||
this.taskList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false
|
||||
this.reset()
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
@@ -187,73 +187,73 @@ export default {
|
||||
userId: undefined,
|
||||
month: this.month,
|
||||
day: undefined,
|
||||
content: undefined,
|
||||
}
|
||||
this.resetForm('form')
|
||||
content: undefined
|
||||
};
|
||||
this.resetForm('form');
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1
|
||||
this.getList()
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm('queryForm')
|
||||
this.handleQuery()
|
||||
this.resetForm('queryForm');
|
||||
this.handleQuery();
|
||||
},
|
||||
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset()
|
||||
this.open = true
|
||||
this.$set(this.form, 'userId', this.userId)
|
||||
this.$set(this.form, 'day', this.day)
|
||||
this.dayEdit = false
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.$set(this.form, 'userId', this.userId);
|
||||
this.$set(this.form, 'day', this.day);
|
||||
this.dayEdit = false;
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset()
|
||||
this.reset();
|
||||
|
||||
this.form = Object.assign({}, row)
|
||||
this.taskType = this.form.taskType
|
||||
this.form = Object.assign({}, row);
|
||||
this.taskType = this.form.taskType;
|
||||
if (this.form.taskType == 1) {
|
||||
this.title = this.month + '月-总结'
|
||||
this.title = this.month + '月-总结';
|
||||
} else {
|
||||
this.title = this.month + '月-总结'
|
||||
this.title = this.month + '月-总结';
|
||||
}
|
||||
this.open = true
|
||||
this.dayEdit = true
|
||||
this.open = true;
|
||||
this.dayEdit = true;
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm: function () {
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.form.summaryType === 1) {
|
||||
this.form.day = undefined
|
||||
this.form.day = undefined;
|
||||
}
|
||||
saveTask(this.form).then((response) => {
|
||||
if (response.code === 200) {
|
||||
this.$message.success('保存成功');
|
||||
this.open = false
|
||||
this.getList()
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
//查询员工
|
||||
// 查询员工
|
||||
getEmployee() {
|
||||
empAPi.getEmployee({ coach: false }).then((resp) => {
|
||||
if (resp.code == 200) {
|
||||
//this.userOptions = resp.data;
|
||||
// this.userOptions = resp.data;
|
||||
if (resp.data && resp.data.length > 0) {
|
||||
resp.data.forEach((item) => {
|
||||
this.userOptions.push(item)
|
||||
})
|
||||
this.userOptions.push(item);
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -12,12 +12,12 @@
|
||||
</el-row>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button plain @click="(visible=false)">取消</el-button>
|
||||
<el-button plain @click="(visible = false)">取消</el-button>
|
||||
<el-button v-jclick type="primary" :disabled="!canSubmit" @click="dialogFormSubmit()">确定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
<script>
|
||||
import { batchUpdate } from '@/api/zs/clue'; export default {
|
||||
name: 'BatchUpdateDialog',
|
||||
props: {
|
||||
@@ -44,7 +44,6 @@ import { batchUpdate } from '@/api/zs/clue'; export default {
|
||||
},
|
||||
methods: {
|
||||
init(info = undefined) {
|
||||
// debugger
|
||||
this.visible = true;
|
||||
this.$nextTick(() => {
|
||||
this.resetDialogForm();
|
||||
@@ -86,5 +85,5 @@ import { batchUpdate } from '@/api/zs/clue'; export default {
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-dialog title="公海" :close-on-click-modal="false" append-to-body :visible.sync="visible" width="1000px" height="500" @close="closeDialog">
|
||||
<el-dialog title="公海" :close-on-click-modal="false" append-to-body :visible.sync="visible" width="1000px" height="500">
|
||||
<div>
|
||||
<el-button type="text" icon="el-icon-refresh" style="margin-bottom: 10px" @click="_getTableList">刷新</el-button>
|
||||
<el-table v-loading="loading" :data="publicList" border :row-class-name="tableRowClassName">
|
||||
@@ -54,10 +54,6 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
closeDialog() {
|
||||
this.$emit('update:dialog.publicVisible', false);
|
||||
},
|
||||
handlePickup(item) {
|
||||
pickupClue(item).then((resp) => {
|
||||
if (resp && resp.code === 200) {
|
||||
@@ -72,8 +68,8 @@ export default {
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
@@ -22,7 +22,10 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间">
|
||||
<el-date-picker v-model="dateRange" style="width: 240px" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="pickDateChange" />
|
||||
<el-date-picker v-model="createDateRange" style="width: 240px" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="pickDateChange" />
|
||||
</el-form-item>
|
||||
<el-form-item label="下次跟进日期">
|
||||
<el-date-picker v-model="nextDateRange" style="width: 240px" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="nextDateChange" />
|
||||
</el-form-item>
|
||||
<el-form-item label-width="0">
|
||||
<el-button type="primary" icon="el-icon-search" @click="$emit('search')">搜索</el-button>
|
||||
@@ -41,16 +44,20 @@ export default {
|
||||
props: {
|
||||
userOptions: {
|
||||
type: Array,
|
||||
default: []
|
||||
default: () => ([])
|
||||
},
|
||||
sourceOptions: {
|
||||
type: Array,
|
||||
default: []
|
||||
default: () => ([])
|
||||
},
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
searchForm: {},
|
||||
searchForm: { ...this.form },
|
||||
quickList: [
|
||||
{ value: 1, label: '我创建的' },
|
||||
{ value: 2, label: '我的有效' },
|
||||
@@ -62,27 +69,34 @@ export default {
|
||||
{ value: 8, label: '撞单线索' }
|
||||
],
|
||||
intentionOptions: [],
|
||||
dateRange: []
|
||||
createDateRange: [],
|
||||
nextDateRange: []
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
searchForm: {
|
||||
handler(val) {
|
||||
this.$emit('update:form', val);
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
|
||||
},
|
||||
created() {
|
||||
// 意向状态
|
||||
this.getDicts('dm_intention_state').then((response) => {
|
||||
let list = response.data
|
||||
this.intentionOptions = []
|
||||
const list = response.data;
|
||||
this.intentionOptions = [];
|
||||
list.map(item => {
|
||||
this.intentionOptions.push({
|
||||
value: item.dictValue,
|
||||
label: item.dictLabel
|
||||
})
|
||||
})
|
||||
})
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
resetQuery() {
|
||||
this.searchForm = {
|
||||
createTime: [],
|
||||
name: undefined,
|
||||
intentionState: undefined,
|
||||
followUser2: undefined,
|
||||
@@ -90,12 +104,28 @@ export default {
|
||||
quickSearch: undefined,
|
||||
total: 0
|
||||
};
|
||||
this.dateRange = []
|
||||
this.createDateRange = [];
|
||||
this.nextDateRange = [];
|
||||
},
|
||||
pickDateChange() {
|
||||
this.addDateRange(this.searchForm, this.dateRange)
|
||||
if (this.createDateRange.length) {
|
||||
this.searchForm.createDateStart = this.createDateRange[0];
|
||||
this.searchForm.createDateEnd = this.createDateRange[1];
|
||||
} else {
|
||||
this.searchForm.createDateStart = undefined;
|
||||
this.searchForm.createDateEnd = undefined;
|
||||
}
|
||||
},
|
||||
nextDateChange() {
|
||||
if (this.nextDateRange.length) {
|
||||
this.searchForm.nextDateStart = this.nextDateRange[0];
|
||||
this.searchForm.nextDateEnd = this.nextDateRange[1];
|
||||
} else {
|
||||
this.searchForm.nextDateStart = undefined;
|
||||
this.searchForm.nextDateEnd = undefined;
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-dialog :title="title" :close-on-click-modal="false" append-to-body :visible.sync="visible" width="400px" @close="closeDialog">
|
||||
<el-dialog :title="title" :close-on-click-modal="false" append-to-body :visible.sync="visible" width="400px">
|
||||
<el-upload ref="upload" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url + '?ydtData=' + ydtData" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
|
||||
<i class="el-icon-upload" />
|
||||
<div class="el-upload__text">
|
||||
@@ -13,12 +13,12 @@
|
||||
</el-upload>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitFileForm">确 定</el-button>
|
||||
<el-button @click="closeDialog">取 消</el-button>
|
||||
<el-button @click="visible = false">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { getToken } from '@/utils/auth'
|
||||
import { getToken } from '@/utils/auth';
|
||||
|
||||
export default {
|
||||
name: 'UploadDialog',
|
||||
@@ -35,8 +35,8 @@ export default {
|
||||
// 设置上传的请求头部
|
||||
headers: { Authorization: 'Bearer ' + getToken() },
|
||||
// 上传的地址
|
||||
url: process.env.VUE_APP_BASE_API + '/zs/clue/importData',
|
||||
},
|
||||
url: process.env.VUE_APP_BASE_API + '/zs/clue/importData'
|
||||
}
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
@@ -46,7 +46,7 @@ export default {
|
||||
this.$nextTick(() => {
|
||||
if (info) {
|
||||
this.ydtData = info;
|
||||
this.title = "一点通-" + this.title;
|
||||
this.title = '一点通-' + this.title;
|
||||
}
|
||||
});
|
||||
},
|
||||
@@ -66,18 +66,13 @@ export default {
|
||||
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + '</div>', '导入结果', {
|
||||
dangerouslyUseHTMLString: true
|
||||
});
|
||||
this.$emit('update:dialog.batchUpdateVisible', false);
|
||||
this.$emit('refreshDataList');
|
||||
},
|
||||
// 提交上传文件
|
||||
submitFileForm() {
|
||||
this.$refs.upload.submit();
|
||||
},
|
||||
closeDialog() {
|
||||
this.$emit('update:dialog.batchUpdateVisible', false);
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
274
src/views/zs/clue/index-bak.vue
Normal file
274
src/views/zs/clue/index-bak.vue
Normal file
@@ -0,0 +1,274 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<!-- 搜索插件 -->
|
||||
<SearchForm v-show="showSearch" ref="SearchForm" :user-options="userOptions" :source-options="sourceOptions" @search="_getTableList" />
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['zs:clue:add']" icon="el-icon-plus" type="primary" @click="handleAddandUpdate(undefined)">新增</el-button>
|
||||
<el-button v-hasPermi="['zs:clue:import']" icon="el-icon-upload" type="warning" @click="handleImport(false)">导入</el-button>
|
||||
<el-button v-hasPermi="['zs:clue:import']" icon="el-icon-upload" type="warning" @click="handleImport(true)">一点通导入</el-button>
|
||||
<el-button v-hasPermi="['zs:clue:export']" icon="el-icon-download" type="warning" @click="handleExport">导出</el-button>
|
||||
<el-button v-hasPermi="['zs:clue:edit']" icon="el-icon-edit" type="primary" :disabled="multiple" @click="handleBatChUpdate()">批量修改</el-button>
|
||||
<el-button type="primary" @click="handlePublicClue">公海</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :show-search.sync="showSearch" :columns="columns" @queryTable="_getTableList" />
|
||||
</el-row>
|
||||
<!-- 表格数据 -->
|
||||
<el-table v-loading="loading" :data="tableList" @select="handleSelectionChange">
|
||||
<el-table-column type="selection" width="50" align="center" />
|
||||
<template v-for="item in columns">
|
||||
<el-table-column v-if="item.visible" :key="item.prop" :label="item.label" align="center" :width="item.width" :prop="item.prop" :show-overflow-tooltip="item.overflow" />
|
||||
</template>
|
||||
<el-table-column label="意向状态" prop="intentionState" sortable fixed="right" min-width="100">
|
||||
<template slot-scope="{ row }">
|
||||
<el-tag effect="dark" style="border: none" :color="tagColorMap[row.intentionState]">{{ row.intentionState }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="center" min-width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-hasPermi="['zs:clue:edit']" type="text" @click.native.stop="handleAddandUpdate(scope.row)">编辑</el-button>
|
||||
<el-button v-if="scope.row.state" v-hasPermi="['zs:clue:sign']" type="text" style="color: #26a69a" @click.native.stop="handleSign(scope.row)">已登记</el-button>
|
||||
<el-button v-if="!scope.row.state" v-hasPermi="['zs:clue:sign']" type="text" @click.native.stop="handleSign(scope.row)">未登记</el-button>
|
||||
<el-button v-hasPermi="['zs:clue:remove']" type="text" icon="el-icon-delete" @click.native.stop="handleDelete(scope.row)">删除</el-button>
|
||||
<el-button v-if="!scope.row.state" v-hasPermi="['zs:clue:discard']" type="text" icon="el-icon-delete" @click.native.stop="handleDiscard(scope.row)">释放</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination :total="total" :page.sync="searchForm.pageNum" :limit.sync="searchForm.pageSize" :page-sizes="[10, 20, 30, 50, 100]" @pagination="_getTableList" />
|
||||
|
||||
<!-- 新增、修改 -->
|
||||
<!-- <ClueForm v-if="dialog.addAndUpdateVisible" ref="addAndUpdateForm" :dialog-visible="dialog.addAndUpdateVisible" :options="options" @refreshDataList="_getTableList" /> -->
|
||||
<!-- 批量修改 -->
|
||||
<BatchUpdateDialog v-if="dialog.batchUpdateVisible" ref="batchUpdateDialogForm" :dialog-visible="dialog.batchUpdateVisible" :options="options" @refreshDataList="_getTableList" />
|
||||
<!-- 公海 -->
|
||||
<PublicDialog v-if="dialog.publicVisible" ref="publicDialogForm" :dialog-visible="dialog.publicVisible" @refreshDataList="_getTableList" />
|
||||
<!-- 上传 -->
|
||||
<UploadDialog v-if="dialog.uploadVisible" ref="uploadDialogForm" :dialog-visible="dialog.uploadVisible" @refreshDataList="_getTableList" />
|
||||
<!-- 登记弹框 -->
|
||||
<SignFormDialog ref="signDialogForm" :clue-info="clueInfo" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import SearchForm from './components/SearchForm.vue';
|
||||
import BatchUpdateDialog from './components/BatchUpdateDialog.vue';
|
||||
import PublicDialog from './components/PublicDialog.vue';
|
||||
import UploadDialog from './components/UploadDialog.vue';
|
||||
import SignFormDialog from '../sign/components/SignFormDialog.vue';
|
||||
|
||||
import { defaultColumns } from './columns.js';
|
||||
import { getClueList, deleteClue, getClueCountBadge, discardClue, getSign } from '@/api/zs/clue';
|
||||
import empApi from '@/api/system/employee';
|
||||
|
||||
export default {
|
||||
name: 'Clue',
|
||||
components: {
|
||||
SearchForm, BatchUpdateDialog, PublicDialog, UploadDialog, SignFormDialog
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: false,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
searchForm: {
|
||||
pageNum: 1,
|
||||
pageSize: 10
|
||||
},
|
||||
tableList: [],
|
||||
total: 0,
|
||||
columns: [],
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
expireCount: 0,
|
||||
|
||||
dialog: {
|
||||
batchUpdateVisible: false,
|
||||
publicVisible: false,
|
||||
uploadVisible: false,
|
||||
addAndUpdateVisible: false,
|
||||
signVisible: false
|
||||
},
|
||||
userOptions2: [],
|
||||
userOptions: [],
|
||||
sourceOptions: [],
|
||||
tagColorMap: {
|
||||
A高意向: '#ff7043',
|
||||
B中意向: '#26a69a',
|
||||
C无意向: '#5c6bc0',
|
||||
D未知意向: '#ef5350',
|
||||
报名成功: '#ffa726',
|
||||
报名他校: '#afaeb0',
|
||||
无效线索: '#afaeb0'
|
||||
},
|
||||
options: undefined,
|
||||
clueInfo: undefined
|
||||
};
|
||||
},
|
||||
created() {
|
||||
const str = localStorage.getItem(`${this.$route.name}-table-columns`);
|
||||
this.columns = str ? JSON.parse(str) : defaultColumns;
|
||||
this._getClueCountBadge();
|
||||
this.getEmployee();
|
||||
// 线索来源
|
||||
this.getDicts('dm_source').then((response) => {
|
||||
this.sourceOptions = response.data;
|
||||
});
|
||||
// 意向状态
|
||||
this.getDicts('dm_intention_state').then((response) => {
|
||||
this.intentionOptions = response.data;
|
||||
});
|
||||
this._getTableList();
|
||||
},
|
||||
methods: {
|
||||
// 分页查询表格数据
|
||||
_getTableList() {
|
||||
this.loading = true;
|
||||
const params = { ...this.searchForm };
|
||||
getClueList(params).then((response) => {
|
||||
this.tableList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 获取已过期线索数
|
||||
async _getClueCountBadge() {
|
||||
const resp = await getClueCountBadge();
|
||||
if (resp.code === 200) {
|
||||
this.expireCount = resp.data;
|
||||
}
|
||||
},
|
||||
// 新增或修改
|
||||
handleAddandUpdate(info) {
|
||||
this.$router.push('/zs/clue-form/index/' + (info ? info.clueId : 0));
|
||||
},
|
||||
// 批量修改
|
||||
handleBatChUpdate() {
|
||||
this.options = {
|
||||
userOptions: this.userOptions
|
||||
};
|
||||
this.getEmployee2();
|
||||
this.dialog.batchUpdateVisible = true;
|
||||
const item = {
|
||||
clueIds: this.ids
|
||||
};
|
||||
this.$nextTick(() => {
|
||||
this.$refs.batchUpdateDialogForm.init(item);
|
||||
});
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map((item) => item.clueId);
|
||||
this.single = selection.length !== 1;
|
||||
this.multiple = !selection.length;
|
||||
},
|
||||
// 释放线索操作
|
||||
handleDiscard(item) {
|
||||
discardClue(item).then((resp) => {
|
||||
if (resp && resp.code === 200) {
|
||||
this.$message.success('释放成功');
|
||||
this._getTableList();
|
||||
}
|
||||
});
|
||||
},
|
||||
// 删除
|
||||
handleDelete(item) {
|
||||
this.$confirm('是否确认删除该条线索(“' + item.name + '/' + item.phone + '”)?', '警告', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
})
|
||||
.then((res) => {
|
||||
deleteClue({ clueId: item.clueId }).then((resp) => {
|
||||
if (resp.code === 200) {
|
||||
this.$message.success('删除成功');
|
||||
this._getTableList();
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(function () { });
|
||||
},
|
||||
// 登记
|
||||
// 导入
|
||||
handleImport(ydtData) {
|
||||
this.dialog.uploadVisible = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.uploadDialogForm.init(ydtData);
|
||||
});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.$confirm('是否确认导出所有学员信息项?', '警告', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(async () => {
|
||||
const tempForm = this.$refs.SearchForm?.searchForm || {};
|
||||
this.download('zs/clue/export', tempForm, `线索信息_${new Date().getTime()}.xlsx`);
|
||||
});
|
||||
},
|
||||
// 公海按钮点击时间
|
||||
handlePublicClue() {
|
||||
this.dialog.publicVisible = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.publicDialogForm.init();
|
||||
});
|
||||
},
|
||||
getEmployee() {
|
||||
empApi.getEmployee().then((resp) => {
|
||||
if (resp.code === 200) {
|
||||
this.userOptions = resp.data;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 查询不能接收线索的员工
|
||||
getEmployee2() {
|
||||
empApi.getEmployee().then((resp) => {
|
||||
if (resp.code === 200) {
|
||||
this.userOptions2 = resp.data;
|
||||
this.userOptions2 = this.userOptions2.filter((item) => {
|
||||
return item.accept;
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
// 登记成交
|
||||
async handleSign(item) {
|
||||
// 根据clueId查询登记信息
|
||||
let signInfo = {};
|
||||
this.clueInfo = item;
|
||||
const resp = await getSign({ clueId: item.clueId });
|
||||
if (resp.code == 200) {
|
||||
signInfo = { ...resp.data };
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.$refs.signDialogForm.init(signInfo);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<style scoped>
|
||||
.drawer-form__footer {
|
||||
border-top: 1px solid rgba(69, 74, 91, 0.1);
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
z-index: 2;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.footer_button {
|
||||
width: 49%;
|
||||
margin: auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,20 +1,18 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<!-- 搜索插件 -->
|
||||
<SearchForm v-show="showSearch" ref="SearchForm" @search="_getTableList" :userOptions="userOptions" :sourceOptions="sourceOptions" />
|
||||
<SearchForm v-show="showSearch" ref="SearchForm" :form.sync="searchForm" :user-options="userOptions" :source-options="sourceOptions" @search="_getTableList" />
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button icon="el-icon-plus" type="primary" @click="handleAddandUpdate(undefined)">新增</el-button>
|
||||
<el-button icon="el-icon-upload" type="warning" @click="handleImport(false)">导入</el-button>
|
||||
<el-button icon="el-icon-upload" type="warning" @click="handleImport(true)">一点通导入</el-button>
|
||||
<el-button icon="el-icon-download" type="warning" @click="handleExport">导出</el-button>
|
||||
<el-button icon="el-icon-edit" type="primary" :disabled="multiple" @click="handleBatChUpdate()">批量修改</el-button>
|
||||
<el-button v-hasPermi="['zs:clue:add']" icon="el-icon-plus" type="primary" @click="handleAddandUpdate(undefined)">新增</el-button>
|
||||
<el-button v-hasPermi="['zs:clue:import']" icon="el-icon-upload" type="warning" @click="handleImport(false)">导入</el-button>
|
||||
<el-button v-hasPermi="['zs:clue:import']" icon="el-icon-upload" type="warning" @click="handleImport(true)">一点通导入</el-button>
|
||||
<el-button v-hasPermi="['zs:clue:export']" icon="el-icon-download" type="warning" @click="handleExport">导出</el-button>
|
||||
<el-button v-hasPermi="['zs:clue:edit']" icon="el-icon-edit" type="primary" :disabled="multiple" @click="handleBatChUpdate()">批量修改</el-button>
|
||||
<el-button type="primary" @click="handlePublicClue">公海</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :show-search.sync="showSearch" :columns="columns" @queryTable="_getTableList" />
|
||||
</el-row>
|
||||
<!-- 表格数据 -->
|
||||
<el-table v-loading="loading" :data="tableList" @select="handleSelectionChange">
|
||||
<el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="50" align="center" />
|
||||
<template v-for="item in columns">
|
||||
<el-table-column v-if="item.visible" :key="item.prop" :label="item.label" align="center" :width="item.width" :prop="item.prop" :show-overflow-tooltip="item.overflow" />
|
||||
@@ -24,30 +22,28 @@
|
||||
<el-tag effect="dark" style="border: none" :color="tagColorMap[row.intentionState]">{{ row.intentionState }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="center" min-width="200">
|
||||
<el-table-column label="操作" fixed="right" align="left" min-width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" icon="el-icon-edit" @click.native.stop="handleAddandUpdate(scope.row)">编辑</el-button>
|
||||
<el-button v-if="scope.row.state" type="text" icon="el-icon-edit" style="color: #26a69a" @click.native.stop="handleSign(scope.row)">已登记</el-button>
|
||||
<el-button v-if="!scope.row.state" type="text" icon="el-icon-edit" @click.native.stop="handleSign(scope.row)">未登记</el-button>
|
||||
<el-button type="text" icon="el-icon-delete" @click.native.stop="handleDelete(scope.row)">删除</el-button>
|
||||
<el-button type="text" v-if="!scope.row.state" icon="el-icon-delete" @click.native.stop="handleDiscard(scope.row)">释放</el-button>
|
||||
<el-button v-hasPermi="['zs:clue:edit']" type="text" @click.native.stop="handleAddandUpdate(scope.row)">编辑</el-button>
|
||||
<el-button v-if="scope.row.state" v-hasPermi="['zs:clue:sign']" type="text" style="color: #26a69a" @click.native.stop="handleSign(scope.row)">已登记</el-button>
|
||||
<el-button v-if="!scope.row.state" v-hasPermi="['zs:clue:sign']" type="text" @click.native.stop="handleSign(scope.row)">未登记</el-button>
|
||||
<el-button v-hasPermi="['zs:clue:remove']" type="text" @click.native.stop="handleDelete(scope.row)">删除</el-button>
|
||||
<el-button v-if="!scope.row.state" v-hasPermi="['zs:clue:discard']" type="text" @click.native.stop="handleDiscard(scope.row)">释放</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination :total="total" :page.sync="searchForm.pageNum" :limit.sync="searchForm.pageSize" :page-sizes="[10, 20, 30, 50, 100]" @pagination="_getTableList" />
|
||||
|
||||
<!-- 新增、修改 -->
|
||||
<!-- <ClueForm v-if="dialog.addAndUpdateVisible" ref="addAndUpdateForm" :dialog-visible="dialog.addAndUpdateVisible" :options="options" @refreshDataList="_getTableList" /> -->
|
||||
<!-- 批量修改 -->
|
||||
<BatchUpdateDialog v-if="dialog.batchUpdateVisible" ref="batchUpdateDialogForm" :dialog-visible="dialog.batchUpdateVisible" :options="options" @refreshDataList="_getTableList" />
|
||||
<BatchUpdateDialog ref="batchUpdateDialogForm" :options="options" @refreshDataList="_getTableList" />
|
||||
<!-- 公海 -->
|
||||
<PublicDialog v-if="dialog.publicVisible" ref="publicDialogForm" :dialog-visible="dialog.publicVisible" @refreshDataList="_getTableList" />
|
||||
<PublicDialog ref="publicDialogForm" @refreshDataList="_getTableList" />
|
||||
<!-- 上传 -->
|
||||
<UploadDialog v-if="dialog.uploadVisible" ref="uploadDialogForm" :dialog-visible="dialog.uploadVisible" @refreshDataList="_getTableList" />
|
||||
<UploadDialog ref="uploadDialogForm" @refreshDataList="_getTableList" />
|
||||
<!-- 登记弹框 -->
|
||||
<SignFormDialog v-if="dialog.signVisible" ref="signDialogForm" :dialog-visible="dialog.signVisible" :clueInfo="clueInfo" />
|
||||
<SignFormDialog ref="signDialogForm" :clue-info="clueInfo" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import SearchForm from './components/SearchForm.vue';
|
||||
import BatchUpdateDialog from './components/BatchUpdateDialog.vue';
|
||||
@@ -56,19 +52,14 @@ import UploadDialog from './components/UploadDialog.vue';
|
||||
import SignFormDialog from '../sign/components/SignFormDialog.vue';
|
||||
|
||||
import { defaultColumns } from './columns.js';
|
||||
import { getClueList, exportData, deleteClue, getClueCountBadge, discardClue, getSign } from '@/api/zs/clue';
|
||||
import empApi from '@/api/system/employee'
|
||||
|
||||
import { getClueList, deleteClue, getClueCountBadge, discardClue, getSign } from '@/api/zs/clue';
|
||||
import empApi from '@/api/system/employee';
|
||||
export default {
|
||||
components: {
|
||||
SearchForm, BatchUpdateDialog, PublicDialog, UploadDialog, SignFormDialog
|
||||
},
|
||||
name: 'Clue',
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: false,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
searchForm: {
|
||||
pageNum: 1,
|
||||
@@ -83,15 +74,6 @@ export default {
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
expireCount: 0,
|
||||
|
||||
dialog: {
|
||||
batchUpdateVisible: false,
|
||||
publicVisible: false,
|
||||
uploadVisible: false,
|
||||
addAndUpdateVisible: false,
|
||||
signVisible: false
|
||||
},
|
||||
userOptions2: [],
|
||||
userOptions: [],
|
||||
sourceOptions: [],
|
||||
tagColorMap: {
|
||||
@@ -105,7 +87,7 @@ export default {
|
||||
},
|
||||
options: undefined,
|
||||
clueInfo: undefined
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
const str = localStorage.getItem(`${this.$route.name}-table-columns`);
|
||||
@@ -133,7 +115,6 @@ export default {
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
|
||||
},
|
||||
// 获取已过期线索数
|
||||
async _getClueCountBadge() {
|
||||
@@ -144,24 +125,11 @@ export default {
|
||||
},
|
||||
// 新增或修改
|
||||
handleAddandUpdate(info) {
|
||||
this.$router.push("/zs/clue-form/index/" + (info ? info.clueId : 0));
|
||||
},
|
||||
// 批量修改
|
||||
handleBatChUpdate() {
|
||||
this.options = {
|
||||
userOptions: this.userOptions
|
||||
}
|
||||
this.getEmployee2();
|
||||
this.dialog.batchUpdateVisible = true;
|
||||
let item = {
|
||||
clueIds: this.ids
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.$refs.batchUpdateDialogForm.init(item);
|
||||
});
|
||||
this.$router.push('/zs/clue-form/index/' + (info ? info.clueId : 0));
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
console.log(selection);
|
||||
this.ids = selection.map((item) => item.clueId);
|
||||
this.single = selection.length !== 1;
|
||||
this.multiple = !selection.length;
|
||||
@@ -192,10 +160,8 @@ export default {
|
||||
})
|
||||
.catch(function () { });
|
||||
},
|
||||
// 登记
|
||||
// 导入
|
||||
handleImport(ydtData) {
|
||||
this.dialog.uploadVisible = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.uploadDialogForm.init(ydtData);
|
||||
});
|
||||
@@ -213,7 +179,6 @@ export default {
|
||||
},
|
||||
// 公海按钮点击时间
|
||||
handlePublicClue() {
|
||||
this.dialog.publicVisible = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.publicDialogForm.init();
|
||||
});
|
||||
@@ -225,53 +190,32 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
// 查询不能接收线索的员工
|
||||
getEmployee2() {
|
||||
empApi.getEmployee().then((resp) => {
|
||||
if (resp.code === 200) {
|
||||
this.userOptions2 = resp.data;
|
||||
this.userOptions2 = this.userOptions2.filter((item) => {
|
||||
return item.accept;
|
||||
});
|
||||
}
|
||||
// 批量修改
|
||||
handleBatChUpdate() {
|
||||
this.options = {
|
||||
userOptions: this.userOptions
|
||||
};
|
||||
this.$nextTick(() => {
|
||||
this.$refs.batchUpdateDialogForm.init({
|
||||
clueIds: this.ids
|
||||
});
|
||||
});
|
||||
},
|
||||
//登记成交
|
||||
// 登记成交
|
||||
async handleSign(item) {
|
||||
//根据clueId查询登记信息
|
||||
// 根据clueId查询登记信息
|
||||
let signInfo = {};
|
||||
this.clueInfo = item;
|
||||
const resp = await getSign({ clueId: item.clueId })
|
||||
const resp = await getSign({ clueId: item.clueId });
|
||||
if (resp.code == 200) {
|
||||
signInfo = { ...resp.data }
|
||||
signInfo = { ...resp.data };
|
||||
}
|
||||
this.dialog.signVisible = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.signDialogForm.init(signInfo);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.drawer-form__footer {
|
||||
border-top: 1px solid rgba(69, 74, 91, 0.1);
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
z-index: 2;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.footer_button {
|
||||
width: 49%;
|
||||
margin: auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped></style>
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
<template>
|
||||
<!-- 成交登记对话框 -->
|
||||
<el-dialog title="成交登记" :visible.sync="visible" width="800px" append-to-body :close-on-click-modal="false" v-loading="signLoading" style>
|
||||
<el-dialog v-if="visible" v-loading="signLoading" title="成交登记" :visible.sync="visible" width="800px" append-to-body :close-on-click-modal="false" style>
|
||||
<!-- <div style="height:500px;overflow-y:auto;"> -->
|
||||
<span style="color:red;">输入联系方式后会进行线索数据匹配!</span>
|
||||
<el-form :model="modalForm" ref="modalForm" :rules="modalRules" label-width="110px" :disabled="!modalForm.signEdit">
|
||||
<el-form ref="modalForm" :model="modalForm" :rules="modalRules" label-width="110px" :disabled="!modalForm.signEdit">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="学员联系方式" prop="phone">
|
||||
<el-input v-model="modalForm.phone" :disabled="modalForm.clueId != undefined || !modalForm.phoneEdit" @blur="searchClue"></el-input>
|
||||
<el-input v-model="modalForm.phone" :disabled="modalForm.clueId != undefined || !modalForm.phoneEdit" @blur="searchClue" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="学员姓名" prop="name">
|
||||
<el-input v-model="modalForm.name" :disabled=" modalForm.clueId != undefined"></el-input>
|
||||
<el-input v-model="modalForm.name" :disabled="modalForm.clueId != undefined" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -36,12 +36,12 @@
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="成交日期" prop="dealDate">
|
||||
<el-date-picker v-model="modalForm.dealDate" size="small" :picker-options="dateControl" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date"></el-date-picker>
|
||||
<el-date-picker v-model="modalForm.dealDate" size="small" :picker-options="dateControl" value-format="yyyy-MM-dd" format="yyyy-MM-dd" type="date" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="报名价格(元)" prop="signPrice">
|
||||
<el-input v-model="modalForm.signPrice" placeholder="学员报名时需要交纳总共的钱" @blur="priceChange"></el-input>
|
||||
<el-input v-model="modalForm.signPrice" placeholder="学员报名时需要交纳总共的钱" @blur="priceChange" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -50,14 +50,14 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="报名驾校" prop="signSchool">
|
||||
<el-select v-model="modalForm.signSchool" filterable placeholder="请选择" value-key="schoolId" clearable size="small" @change="schoolChange">
|
||||
<el-option v-for="(dict, index) in schoolOptions.filter(item =>item.schoolId === form.signSchool)" :key="index" :label="dict.schoolName" :value="dict.schoolId" />
|
||||
<el-option v-for="(dict, index) in schoolOptions.filter(item => item.schoolId === modalForm.signSchool)" :key="index" :label="dict.schoolName" :value="dict.schoolId" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="报名场地" prop="signPlace">
|
||||
<el-select v-model="modalForm.signPlace" filterable placeholder="请选择" clearable value-key="placeId" size="small" @change="placeChange">
|
||||
<el-option v-for="(dict, index) in placeOptions.filter(item =>item.schoolId === form.signSchool)" :key="index" :label="dict.name" :value="dict.placeId" />
|
||||
<el-option v-for="(dict, index) in placeOptions.filter(item => item.schoolId === modalForm.signSchool)" :key="index" :label="dict.name" :value="dict.placeId" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -67,14 +67,14 @@
|
||||
<el-col :span="12">
|
||||
<el-form-item label="报名班型" prop="signClass">
|
||||
<el-select v-model="modalForm.signClass" filterable placeholder="请选择" clearable value-key="typeId" size="small" @change="priceChange">
|
||||
<el-option v-for="(dict, index) in classTypeOptions.filter(item =>((!item.placeId && item.schoolId === form.signSchool) || item.placeId === form.signPlace))" :key="index" :label="`${dict.licenseType}-${dict.typeName}`" :value="dict.typeId" />
|
||||
<el-option v-for="(dict, index) in classTypeOptions.filter(item => ((!item.placeId && item.schoolId === modalForm.signSchool) || item.placeId === modalForm.signPlace))" :key="index" :label="`${dict.licenseType}-${dict.typeName}`" :value="dict.typeId" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="对接人" prop="schoolPeople">
|
||||
<el-input v-model="modalForm.schoolPeople"></el-input>
|
||||
<el-input v-model="modalForm.schoolPeople" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -82,13 +82,13 @@
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="驾校支付" prop="schoolPay">
|
||||
<el-input type="number" v-model="modalForm.schoolPay" placeholder="请输入驾校支付金额" disabled></el-input>
|
||||
<el-input v-model="modalForm.schoolPay" type="number" placeholder="请输入驾校支付金额" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="驾考宝典款" prop="alipay">
|
||||
<el-input v-model="modalForm.alipay" placeholder="请输入驾考宝典款金额"></el-input>
|
||||
<el-input v-model="modalForm.alipay" placeholder="请输入驾考宝典款金额" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -104,7 +104,7 @@
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="额外支出金额" prop="extraPay">
|
||||
<el-input placeholder="请输入额外支出金额" v-model="modalForm.extraPay"></el-input>
|
||||
<el-input v-model="modalForm.extraPay" placeholder="请输入额外支出金额" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -146,7 +146,7 @@
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注" prop="memo">
|
||||
<el-input type="textarea" :rows="2" v-model="modalForm.memo"></el-input>
|
||||
<el-input v-model="modalForm.memo" type="textarea" :rows="2" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -172,34 +172,34 @@
|
||||
</el-form-item>
|
||||
</el-row>
|
||||
|
||||
<el-row v-if="modalForm && modalForm.signId">
|
||||
<el-row v-if="modalForm && modalForm.signId">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="审核记录">
|
||||
<CheckRecord :signId="modalForm.signId" />
|
||||
<CheckRecord :sign-id="modalForm.signId" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<!-- </div> -->
|
||||
<span slot="footer" v-if="modalForm.signEdit">
|
||||
<span v-if="modalForm.signEdit" slot="footer">
|
||||
<el-button @click="visible = false">取 消</el-button>
|
||||
<el-button type="primary" :disabled="!canSubmit" @click="handleSubmit">提 交</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { addSign, updateSign } from '@/api/zs/sign'
|
||||
import { validateMoney } from '@/utils/validate'
|
||||
import { getToken } from '@/utils/auth'
|
||||
import empApi from '@/api/system/employee'
|
||||
import schoolAPi from '@/api/sch/school'
|
||||
import { getAllPlaces } from '@/api/sch/place'
|
||||
import { getClassTypeTableList } from '@/api/sch/classType'
|
||||
import { uploadEvidence, deleteFile, } from '@/api/tool/common'
|
||||
import { getClueList } from '@/api/zs/clue'
|
||||
|
||||
import CheckRecord from './CheckRecord.vue'
|
||||
<script>
|
||||
import { addSign, updateSign } from '@/api/zs/sign';
|
||||
import { validateMoney } from '@/utils/validate';
|
||||
import { getToken } from '@/utils/auth';
|
||||
import empApi from '@/api/system/employee';
|
||||
import schoolAPi from '@/api/sch/school';
|
||||
import { getAllPlaces } from '@/api/sch/place';
|
||||
import { getClassTypeTableList } from '@/api/sch/classType';
|
||||
import { uploadEvidence, deleteFile } from '@/api/tool/common';
|
||||
import { getClueList } from '@/api/zs/clue';
|
||||
|
||||
import CheckRecord from './CheckRecord.vue';
|
||||
|
||||
export default {
|
||||
name: 'SignFormDialog',
|
||||
@@ -219,7 +219,7 @@ export default {
|
||||
userId: localStorage.getItem('userId'),
|
||||
loading: {
|
||||
tableLoading: false,
|
||||
modalSaveLoading: false,
|
||||
modalSaveLoading: false
|
||||
},
|
||||
visible: false,
|
||||
signLoading: false,
|
||||
@@ -229,14 +229,14 @@ export default {
|
||||
phone: { required: true, message: '联系方式不为空', trigger: 'blur' },
|
||||
source: { required: true, message: '线索来源不为空', trigger: 'blur' },
|
||||
area: { required: true, message: '所属区域不为空', trigger: 'blur' },
|
||||
dealDate: { required: true, message: '成交时间不为空', trigger: 'blur,change', },
|
||||
state: { required: true, message: '是否权限必选', trigger: 'blur,change', },
|
||||
followUser: { required: true, message: '归属人员不为空', trigger: 'blur,change', },
|
||||
signSchool: { required: true, message: '报名驾校不为空', trigger: 'blur,change', },
|
||||
signPlace: { required: true, message: '报名场地不为空', trigger: 'blur,change', },
|
||||
signClass: { required: true, message: '报名班型不为空', trigger: 'blur,change', },
|
||||
dealState: { required: true, message: '结算情况不为空', trigger: 'blur,change', },
|
||||
signPrice: { required: true, validator: validateMoney, trigger: 'blur', },
|
||||
dealDate: { required: true, message: '成交时间不为空', trigger: 'blur,change' },
|
||||
state: { required: true, message: '是否权限必选', trigger: 'blur,change' },
|
||||
followUser: { required: true, message: '归属人员不为空', trigger: 'blur,change' },
|
||||
signSchool: { required: true, message: '报名驾校不为空', trigger: 'blur,change' },
|
||||
signPlace: { required: true, message: '报名场地不为空', trigger: 'blur,change' },
|
||||
signClass: { required: true, message: '报名班型不为空', trigger: 'blur,change' },
|
||||
dealState: { required: true, message: '结算情况不为空', trigger: 'blur,change' },
|
||||
signPrice: { required: true, validator: validateMoney, trigger: 'blur' }
|
||||
},
|
||||
userOptions: [],
|
||||
clueOptions: [],
|
||||
@@ -249,12 +249,12 @@ export default {
|
||||
percentageOptions: [
|
||||
{
|
||||
value: '驾校已结算',
|
||||
label: '驾校已结算',
|
||||
label: '驾校已结算'
|
||||
},
|
||||
{
|
||||
value: '提成已发放',
|
||||
label: '提成已发放',
|
||||
},
|
||||
label: '提成已发放'
|
||||
}
|
||||
],
|
||||
dateControl: undefined,
|
||||
areaOptions: [],
|
||||
@@ -270,137 +270,134 @@ export default {
|
||||
// 设置上传的请求头部
|
||||
headers: { Authorization: 'Bearer ' + getToken() },
|
||||
// 上传的地址
|
||||
url: process.env.VUE_APP_BASE_API + '/common/upload',
|
||||
url: process.env.VUE_APP_BASE_API + '/common/upload'
|
||||
}
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
||||
//线索来源
|
||||
// 线索来源
|
||||
this.getDicts('dm_source').then((response) => {
|
||||
this.sourceOptions = response.data
|
||||
})
|
||||
//意向状态
|
||||
this.sourceOptions = response.data;
|
||||
});
|
||||
// 意向状态
|
||||
this.getDicts('dm_intention_state').then((response) => {
|
||||
this.intentionOptions = response.data
|
||||
})
|
||||
//佣金明细
|
||||
this.intentionOptions = response.data;
|
||||
});
|
||||
// 佣金明细
|
||||
this.getDicts('dm_commission').then((response) => {
|
||||
this.commissionOptions = response.data
|
||||
})
|
||||
//额外支出类型
|
||||
this.commissionOptions = response.data;
|
||||
});
|
||||
// 额外支出类型
|
||||
this.getDicts('dm_extra_pay').then((response) => {
|
||||
this.extraPayTypeOptions = response.data
|
||||
})
|
||||
//所属区域
|
||||
this.extraPayTypeOptions = response.data;
|
||||
});
|
||||
// 所属区域
|
||||
this.getDicts('dm_area').then((response) => {
|
||||
this.areaOptions = response.data
|
||||
})
|
||||
this.getSchools()
|
||||
this.getEmployee()
|
||||
|
||||
this.areaOptions = response.data;
|
||||
});
|
||||
this.getSchools();
|
||||
this.getEmployee();
|
||||
},
|
||||
methods: {
|
||||
init(info = undefined) {
|
||||
this.fileList = []
|
||||
this.picList = []
|
||||
this.fileList = [];
|
||||
this.picList = [];
|
||||
this.canSubmit = true;
|
||||
this.checkRecord = []
|
||||
this.checkRecord = [];
|
||||
this.$nextTick(() => {
|
||||
this.resetForm('modalForm')
|
||||
this.resetForm();
|
||||
//如果是线索页面的弹框,则处理
|
||||
this.resetForm('modalForm');
|
||||
// 如果是线索页面的弹框,则处理
|
||||
this.dealClue(this.clueInfo);
|
||||
if (info && info.signId) {
|
||||
//修改
|
||||
this.handleUpdate(info)
|
||||
// 修改
|
||||
this.handleUpdate(info);
|
||||
} else {
|
||||
//新增
|
||||
this.handleAdd()
|
||||
// 新增
|
||||
this.handleAdd();
|
||||
}
|
||||
this.visible = true;
|
||||
});
|
||||
},
|
||||
getSchools() {
|
||||
schoolAPi.pageList().then((resp) => {
|
||||
this.schoolOptions = resp.rows
|
||||
})
|
||||
this.schoolOptions = resp.rows;
|
||||
});
|
||||
},
|
||||
getPlaces(schoolId) {
|
||||
getAllPlaces({ schoolId: schoolId, status: '0' }).then((resp) => {
|
||||
this.placeOptions = resp.data
|
||||
})
|
||||
this.placeOptions = resp.data;
|
||||
});
|
||||
},
|
||||
getClassTypes(schoolId, placeId) {
|
||||
getClassTypeTableList({ schoolId: schoolId, placeId: placeId, status: '0' }).then(
|
||||
(resp) => {
|
||||
this.classTypeOptions = resp.rows
|
||||
this.classTypeOptions = resp.rows;
|
||||
}
|
||||
)
|
||||
);
|
||||
},
|
||||
getEmployee() {
|
||||
empApi.getEmployee().then((resp) => {
|
||||
if (resp.code == 200) {
|
||||
this.userOptions = resp.data
|
||||
this.userOptions = resp.data;
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
checkDate(date) {
|
||||
let dealDate = new Date(date)
|
||||
let year = dealDate.getFullYear() //得到年份
|
||||
let month = dealDate.getMonth() + 1 //得到月份
|
||||
let endDate = new Date(year, month, 5)
|
||||
let now = new Date()
|
||||
const dealDate = new Date(date);
|
||||
const year = dealDate.getFullYear(); // 得到年份
|
||||
const month = dealDate.getMonth() + 1; // 得到月份
|
||||
const endDate = new Date(year, month, 5);
|
||||
const now = new Date();
|
||||
if (now.getTime() >= endDate.getTime()) {
|
||||
this.signEdit = true
|
||||
this.signEdit = true;
|
||||
}
|
||||
},
|
||||
//驾校change事件
|
||||
// 驾校change事件
|
||||
schoolChange(e) {
|
||||
this.$set(this.modalForm, 'signPlace', undefined)
|
||||
this.$set(this.modalForm, 'signClass', undefined)
|
||||
this.classTypeOptions = []
|
||||
this.$set(this.modalForm, 'schoolPeople', undefined)
|
||||
this.$set(this.modalForm, 'area', undefined)
|
||||
this.getPlaces(e)
|
||||
this.$set(this.modalForm, 'signPlace', undefined);
|
||||
this.$set(this.modalForm, 'signClass', undefined);
|
||||
this.classTypeOptions = [];
|
||||
this.$set(this.modalForm, 'schoolPeople', undefined);
|
||||
this.$set(this.modalForm, 'area', undefined);
|
||||
this.getPlaces(e);
|
||||
},
|
||||
//場地change事件
|
||||
// 場地change事件
|
||||
placeChange() {
|
||||
this.$set(this.modalForm, 'signClass', undefined)
|
||||
this.$set(this.modalForm, 'signClass', undefined);
|
||||
if (this.modalForm.signPlace) {
|
||||
const place = this.placeOptions.find(
|
||||
(item) => item.placeId === this.modalForm.signPlace
|
||||
)
|
||||
this.$set(this.modalForm, 'schoolPeople', place.contact)
|
||||
this.$set(this.modalForm, 'area', place.area)
|
||||
this.getClassTypes(this.modalForm.signSchool, this.modalForm.signPlace)
|
||||
);
|
||||
this.$set(this.modalForm, 'schoolPeople', place.contact);
|
||||
this.$set(this.modalForm, 'area', place.area);
|
||||
this.getClassTypes(this.modalForm.signSchool, this.modalForm.signPlace);
|
||||
} else {
|
||||
this.classTypeOptions = []
|
||||
this.$set(this.modalForm, 'schoolPeople', undefined)
|
||||
this.$set(this.modalForm, 'area', undefined)
|
||||
this.classTypeOptions = [];
|
||||
this.$set(this.modalForm, 'schoolPeople', undefined);
|
||||
this.$set(this.modalForm, 'area', undefined);
|
||||
}
|
||||
},
|
||||
handleAdd() {
|
||||
this.placeOptions = []
|
||||
this.classTypeOptions = []
|
||||
this.setDate(true)
|
||||
this.placeOptions = [];
|
||||
this.classTypeOptions = [];
|
||||
this.setDate(true);
|
||||
},
|
||||
handleUpdate(item) {
|
||||
this.setDate(false)
|
||||
this.modalForm = Object.assign({}, item)
|
||||
this.getPlaces(this.modalForm.signSchool)
|
||||
this.getClassTypes(this.modalForm.signSchool, this.modalForm.signPlace)
|
||||
this.modalForm.phoneEdit = false
|
||||
this.setDate(false);
|
||||
this.modalForm = Object.assign({}, item);
|
||||
this.getPlaces(this.modalForm.signSchool);
|
||||
this.getClassTypes(this.modalForm.signSchool, this.modalForm.signPlace);
|
||||
this.modalForm.phoneEdit = false;
|
||||
if (this.modalForm.fileList) {
|
||||
this.fileList = this.modalForm.fileList
|
||||
this.fileList = this.modalForm.fileList;
|
||||
}
|
||||
},
|
||||
//重置表单
|
||||
// 重置表单
|
||||
resetForm() {
|
||||
let now = new Date()
|
||||
let year = now.getFullYear() //得到年份
|
||||
let month = now.getMonth() + 1 //得到月份
|
||||
let date = now.getDate() //得到日期
|
||||
const now = new Date();
|
||||
const year = now.getFullYear(); // 得到年份
|
||||
const month = now.getMonth() + 1; // 得到月份
|
||||
const date = now.getDate(); // 得到日期
|
||||
this.modalForm = {
|
||||
signId: undefined,
|
||||
clueId: undefined,
|
||||
@@ -433,153 +430,153 @@ export default {
|
||||
signEdit: true,
|
||||
phoneEdit: true,
|
||||
fileList: []
|
||||
}
|
||||
};
|
||||
},
|
||||
setDate(flag) {
|
||||
let now = new Date()
|
||||
let year = now.getFullYear() //得到年份
|
||||
let month = now.getMonth() //得到月份
|
||||
let start = new Date(year, month - 1, 1)
|
||||
const now = new Date();
|
||||
const year = now.getFullYear(); // 得到年份
|
||||
const month = now.getMonth(); // 得到月份
|
||||
let start = new Date(year, month - 1, 1);
|
||||
// console.log(new Date(year, month , 9, 9))
|
||||
if (flag && now >= new Date(year, month, 5)) {
|
||||
start = new Date(year, month, 1)
|
||||
start = new Date(year, month, 1);
|
||||
}
|
||||
if (this.admin != 'true') {
|
||||
this.dateControl = {
|
||||
disabledDate: (time) => {
|
||||
return time.getTime() < start || time.getTime() >= new Date()
|
||||
},
|
||||
}
|
||||
return time.getTime() < start || time.getTime() >= new Date();
|
||||
}
|
||||
};
|
||||
}
|
||||
},
|
||||
handleSignSave() {
|
||||
this.modalForm.checkState = 1
|
||||
this.modalForm.fileList = this.fileList
|
||||
//保存登记表
|
||||
this.modalForm.checkState = 1;
|
||||
this.modalForm.fileList = this.fileList;
|
||||
// 保存登记表
|
||||
this.$refs.modalForm.validate((valid) => {
|
||||
if (valid) {
|
||||
this.canSubmit = false;
|
||||
if (this.modalForm.signId) {
|
||||
updateSign(this.modalForm).then((resp) => {
|
||||
if (resp.code == 200) {
|
||||
this.$message.success('提交成功')
|
||||
this.visible = false
|
||||
this.$message.success('提交成功');
|
||||
this.visible = false;
|
||||
this.$emit('refreshDataList');
|
||||
} else {
|
||||
this.canSubmit = true;
|
||||
}
|
||||
})
|
||||
});
|
||||
} else {
|
||||
addSign(this.modalForm).then((resp) => {
|
||||
if (resp.code == 200) {
|
||||
this.$message.success('提交成功')
|
||||
this.visible = false
|
||||
this.$emit('refreshDataList')
|
||||
this.$message.success('提交成功');
|
||||
this.visible = false;
|
||||
this.$emit('refreshDataList');
|
||||
} else {
|
||||
// this.$message.error("登记失败:" + resp.msg);
|
||||
this.canSubmit = true;
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
handleSubmit() {
|
||||
this.$confirm('提交后将进入审核阶段,是否提交确认提交?', '警告', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
type: 'warning'
|
||||
})
|
||||
.then((res) => {
|
||||
this.handleSignSave()
|
||||
this.handleSignSave();
|
||||
})
|
||||
.catch(function () { })
|
||||
.catch(function () { });
|
||||
},
|
||||
//自动检索对应的线索
|
||||
// 自动检索对应的线索
|
||||
searchClue(e) {
|
||||
console.log(e.target.value)
|
||||
console.log(e.target.value);
|
||||
if (e.target.value && e.target.value != '') {
|
||||
this.signLoading = true
|
||||
this.signLoading = true;
|
||||
getClueList({ state: false, name: e.target.value }).then((response) => {
|
||||
if (response.code == 200 && response.rows && response.rows[0]) {
|
||||
this.dealClue(response.rows[0]);
|
||||
} else {
|
||||
this.dealClue(undefined);
|
||||
}
|
||||
this.signLoading = false
|
||||
})
|
||||
this.signLoading = false;
|
||||
});
|
||||
} else {
|
||||
this.dealClue(undefined);
|
||||
}
|
||||
},
|
||||
//检索到的线索进行赋值
|
||||
// 检索到的线索进行赋值
|
||||
dealClue(clueInfo) {
|
||||
if (clueInfo) {
|
||||
this.modalForm.clueId = clueInfo.clueId
|
||||
this.modalForm.name = clueInfo.name
|
||||
this.modalForm.phone = clueInfo.phone
|
||||
this.modalForm.source = clueInfo.source
|
||||
this.modalForm.followUser = clueInfo.followUser
|
||||
this.modalForm.offlineReceiver = clueInfo.offlineReceiver
|
||||
this.modalForm.clueId = clueInfo.clueId;
|
||||
this.modalForm.name = clueInfo.name;
|
||||
this.modalForm.phone = clueInfo.phone;
|
||||
this.modalForm.source = clueInfo.source;
|
||||
this.modalForm.followUser = clueInfo.followUser;
|
||||
this.modalForm.offlineReceiver = clueInfo.offlineReceiver;
|
||||
} else {
|
||||
this.modalForm.clueId = undefined
|
||||
this.modalForm.name = undefined
|
||||
this.modalForm.source = undefined
|
||||
this.modalForm.followUser = undefined
|
||||
this.modalForm.offlineReceiver = undefined
|
||||
this.modalForm.clueId = undefined;
|
||||
this.modalForm.name = undefined;
|
||||
this.modalForm.source = undefined;
|
||||
this.modalForm.followUser = undefined;
|
||||
this.modalForm.offlineReceiver = undefined;
|
||||
}
|
||||
},
|
||||
handleRemove(file, fileList) {
|
||||
console.log(file, fileList)
|
||||
this.fileList = fileList
|
||||
console.log(file, fileList);
|
||||
this.fileList = fileList;
|
||||
},
|
||||
handlePictureCardPreview(file) {
|
||||
this.dialogImageUrl = file.url
|
||||
this.dialogVisible = true
|
||||
this.dialogImageUrl = file.url;
|
||||
this.dialogVisible = true;
|
||||
},
|
||||
// handleSuccess(response, file, fileList) {
|
||||
// console.log(file, fileList)
|
||||
// },
|
||||
// 文件上传中处理
|
||||
handleFileUploadProgress(event, file, fileList) {
|
||||
console.log(file, fileList)
|
||||
console.log(file, fileList);
|
||||
this.signUpload.isUploading = true;
|
||||
},
|
||||
// 文件上传成功处理
|
||||
handleFileSuccess(response, file, fileList) {
|
||||
console.log(file, fileList)
|
||||
console.log(file, fileList);
|
||||
this.signUpload.isUploading = false;
|
||||
this.$refs.signUpload.clearFiles();
|
||||
// this.dialogImageUrl = process.env.VUE_APP_BASE_API + response.fileName
|
||||
this.fileList.push({ name: response.newFileName, url: process.env.VUE_APP_BASE_API + response.fileName })
|
||||
this.fileList.push({ name: response.newFileName, url: process.env.VUE_APP_BASE_API + response.fileName });
|
||||
},
|
||||
handleUploadFile(param) {
|
||||
let fileObj = param.file
|
||||
const fileObj = param.file;
|
||||
|
||||
const isLt2M = fileObj.size / 1024 / 1024 < 2
|
||||
const isLt2M = fileObj.size / 1024 / 1024 < 2;
|
||||
if (!isLt2M) {
|
||||
this.$message.error('上传头像图片大小不能超过 2MB!')
|
||||
return
|
||||
this.$message.error('上传头像图片大小不能超过 2MB!');
|
||||
return;
|
||||
}
|
||||
if (fileObj.type === 'image/jpeg') {
|
||||
this.uploadFile = new File([fileObj], new Date().getTime() + '.jpg', {
|
||||
type: 'image/jpeg',
|
||||
})
|
||||
this.upload()
|
||||
type: 'image/jpeg'
|
||||
});
|
||||
this.upload();
|
||||
} else if (fileObj.type === 'image/png') {
|
||||
this.uploadFile = new File([fileObj], new Date().getTime() + '.png', {
|
||||
type: 'image/png',
|
||||
})
|
||||
this.upload()
|
||||
type: 'image/png'
|
||||
});
|
||||
this.upload();
|
||||
} else {
|
||||
this.$message.error('只能上传jpg/png文件')
|
||||
return
|
||||
this.$message.error('只能上传jpg/png文件');
|
||||
return;
|
||||
}
|
||||
},
|
||||
upload() {
|
||||
var param = new FormData() // FormData 对象
|
||||
param.append('file', this.uploadFile) // 文件对象
|
||||
param.append('name', 'ziguiyu') // 其他参数
|
||||
var param = new FormData(); // FormData 对象
|
||||
param.append('file', this.uploadFile); // 文件对象
|
||||
param.append('name', 'ziguiyu'); // 其他参数
|
||||
uploadEvidence(param)
|
||||
.then((response) => {
|
||||
if (response.code == 200) {
|
||||
@@ -587,55 +584,57 @@ export default {
|
||||
// message: '上传成功',
|
||||
// type: 'success'
|
||||
// });
|
||||
//this.form.logo = "https://duima.cainiao-xueche.com:8443/duima" + response.data;
|
||||
this.dialogImageUrl = process.env.VUE_APP_BASE_API + response.data
|
||||
this.fileList.push({ name: '', url: this.dialogImageUrl })
|
||||
// this.form.logo = "https://duima.cainiao-xueche.com:8443/duima" + response.data;
|
||||
this.dialogImageUrl = process.env.VUE_APP_BASE_API + response.data;
|
||||
this.fileList.push({ name: '', url: this.dialogImageUrl });
|
||||
// this.dialogImageUrl = file.url;
|
||||
// this.dialogVisible = true;
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
this.$message.error('上传失败,请稍后重试')
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message.error('上传失败,请稍后重试');
|
||||
});
|
||||
},
|
||||
handleRemoveImage(index, item) {
|
||||
deleteFile(item).then((resp) => {
|
||||
if (resp && resp.data)
|
||||
if (resp && resp.data) {
|
||||
// 最好先通过接口删除服务器图片
|
||||
this.modalForm.fileList.splice(index, 1)
|
||||
})
|
||||
this.modalForm.fileList.splice(index, 1);
|
||||
}
|
||||
});
|
||||
},
|
||||
priceChange() {
|
||||
//计算驾校支付款 报名价格-班型底价
|
||||
// 计算驾校支付款 报名价格-班型底价
|
||||
if (this.modalForm.signClass && this.modalForm.signPrice) {
|
||||
const minprice = this.classTypeOptions.find(
|
||||
(item) => item.typeId == this.modalForm.signClass
|
||||
).minPrice
|
||||
).minPrice;
|
||||
if (minprice) {
|
||||
this.$set(this.modalForm, 'schoolPay', this.modalForm.signPrice - minprice)
|
||||
this.$set(this.modalForm, 'schoolPay', this.modalForm.signPrice - minprice);
|
||||
}
|
||||
} else {
|
||||
this.$set(this.modalForm, 'schoolPay', undefined)
|
||||
this.$set(this.modalForm, 'schoolPay', undefined);
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
<style scoped>
|
||||
.demo-image__item {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.image-list-item {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.el-upload--picture-card {
|
||||
width: 100px !important;
|
||||
height: 100px !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ module.exports = {
|
||||
// detail: https://cli.vuejs.org/config/#devserver-proxy
|
||||
[process.env.VUE_APP_BASE_API]: {
|
||||
// target: `http://118.31.23.45/duima/`,
|
||||
target: `http://localhost:8086`,
|
||||
target: `http://192.168.2.8:8086`,
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
['^' + process.env.VUE_APP_BASE_API]: ''
|
||||
@@ -97,10 +97,12 @@ module.exports = {
|
||||
config
|
||||
.plugin('ScriptExtHtmlWebpackPlugin')
|
||||
.after('html')
|
||||
.use('script-ext-html-webpack-plugin', [{
|
||||
// `runtime` must same as runtimeChunk name. default is `runtime`
|
||||
inline: /runtime\..*\.js$/
|
||||
}])
|
||||
.use('script-ext-html-webpack-plugin', [
|
||||
{
|
||||
// `runtime` must same as runtimeChunk name. default is `runtime`
|
||||
inline: /runtime\..*\.js$/
|
||||
}
|
||||
])
|
||||
.end();
|
||||
config.optimization.splitChunks({
|
||||
chunks: 'all',
|
||||
|
||||
Reference in New Issue
Block a user