Commit a99709a3 authored by Mac's avatar Mac

订单部分功能

parent 4fca0726
......@@ -69,3 +69,92 @@ export function getOrderGuestPageList(data) {
data
})
}
/**
* 日语基础枚举
*
*/
export function getGuestBasicsEnumList(data) {
return request({
url: '/order/GetGuestBasicsEnumList',
method: 'post',
data
})
}
/**
* 日语基础枚举
*
*/
export function getGuestEducationEnumList(data) {
return request({
url: '/order/GetGuestEducationEnumList',
method: 'post',
data
})
}
/**
* 获取学习目的 枚举
*
*/
export function getGuestLearningGoalsEnumList(data) {
return request({
url: '/order/GetGuestLearningGoalsEnumList',
method: 'post',
data
})
}
/**
* 获取订单来自于 枚举
*
*/
export function getOrderFormEnumList(data) {
return request({
url: '/order/GetOrderFormEnumList',
method: 'post',
data
})
}
/**
* 新增客人信息
*
*/
export function setOrderGuestInfo(data) {
return request({
url: '/order/SetOrderGuestInfo',
method: 'post',
data
})
}
/**
* 删除客人名单
*
*/
export function delOrderGuestInfo(data) {
return request({
url: '/order/DelOrderGuestInfo',
method: 'post',
data
})
}
/**
* 删除客人名单
*
*/
export function updateOrderRemark(data) {
return request({
url: '/order/UpdateOrderRemark',
method: 'post',
data
})
}
/**
* 订单转交
*
*/
export function setClassOrderCareOf(data) {
return request({
url: '/order/SetClassOrderCareOf',
method: 'post',
data
})
}
......@@ -152,15 +152,30 @@
</q-item-section>
</q-item>
<q-item clickable v-close-popup >
<q-item-section>
<q-item-section @click="transfer(item)">
<q-item-label>转交订单</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup >
<q-item-section>
<q-item-section @click="alterremarks(item.SaleRemark,item,1)">
<q-item-label>销售备注</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup >
<q-item-section @click="alterremarks(item.TeacherRemark,item,2)">
<q-item-label>教务备注</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup >
<q-item-section @click="alterremarks(item.RectorRemark,item,3)">
<q-item-label>校长备注</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup >
<q-item-section @click="alterremarks(item.DirectorRemark,item,4)">
<q-item-label>经理备注</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup >
<q-item-section>
<q-item-label>取消</q-item-label>
......@@ -179,7 +194,7 @@
<tr>
<td :colspan="11" style="text-align: left">
学生名单:
<span v-for="(x,j) in item.GuestList" :index="j" v-if="item.GuestList.length>0">{{x.GuestName}}</span>
<span v-for="(x,j) in item.GuestList" :index="j" v-if="item.GuestList.length>0" style="color:#2961FE;">{{x.GuestName}} </span>
<span v-if="item.GuestList.length==0">暂无</span>
</td>
</tr>
......@@ -189,9 +204,9 @@
<div class="col">
<div>销售备注:</div>
<div class="remarks-b">
<div v-if="item.SaleRemarkList&&item.SaleRemarkList.length>0">
<div>{{item.SaleRemarkList[0].Content}}</div>
<div style="text-align: right">{{item.SaleRemarkList[0].CreateBy}} {{item.SaleRemarkList[0].CreateTime}}
<div v-if="item.SaleRemark!=null||item.SaleRemark!=''">
<div>{{item.SaleRemark}}</div>
<div class="remarks-b-b" >
<span class="iconfont icon-xiangxia" style="color: #2961FE;font-size: 10px" ></span>
<q-popup-proxy v-if="item.SaleRemarkList&&item.SaleRemarkList.length>0">
<q-banner>
......@@ -206,15 +221,15 @@
</q-popup-proxy>
</div>
</div>
<span v-if="item.SaleRemarkList && item.SaleRemarkList.length==0">暂无</span>
<span v-if="item.SaleRemark==null||item.SaleRemark==''">暂无</span>
</div>
</div>
<div class="col">
<div>教务备注:</div>
<div class="remarks-b ">
<div v-if="item.TeacherRemarkList&&item.TeacherRemarkList.length>0">
<div>{{item.TeacherRemarkList[0].Content}}</div>
<div style="text-align: right">{{item.TeacherRemarkList[0].CreateBy}} {{item.TeacherRemarkList[0].CreateTime}}
<div v-if="item.TeacherRemark!=null||item.TeacherRemark!=''">
<div>{{item.TeacherRemark}}</div>
<div class="remarks-b-b" >
<span class="iconfont icon-xiangxia" style="color: #2961FE;font-size: 10px" ></span>
<q-popup-proxy v-if="item.TeacherRemarkList&&item.TeacherRemarkList.length>0">
<q-banner>
......@@ -229,15 +244,15 @@
</q-popup-proxy>
</div>
</div>
<span v-if="item.TeacherRemarkList && item.TeacherRemarkList.length==0">暂无</span>
<span v-if="item.TeacherRemark==null||item.TeacherRemark==''">暂无</span>
</div>
</div>
<div class="col">
<div>校长备注:</div>
<div class="remarks-b ">
<div v-if="item.RectorRemarkList&&item.RectorRemarkList.length>0">
<div>{{item.RectorRemarkList[0].Content}}</div>
<div style="text-align: right">{{item.RectorRemarkList[0].CreateBy}} {{item.RectorRemarkList[0].CreateTime}}
<div v-if="item.RectorRemark!=null ||item.RectorRemark!=''">
<div>{{item.RectorRemark}}</div>
<div class="remarks-b-b" >
<span class="iconfont icon-xiangxia" style="color: #2961FE;font-size: 10px" ></span>
<q-popup-proxy v-if="item.RectorRemarkList&&item.RectorRemarkList.length>0">
<q-banner>
......@@ -252,15 +267,15 @@
</q-popup-proxy>
</div>
</div>
<span v-if="item.RectorRemarkList && item.RectorRemarkList.length==0">暂无</span>
<span v-if="item.RectorRemark==null||item.RectorRemark==''">暂无</span>
</div>
</div>
<div class="col">
<div>总经理备注:</div>
<div class="remarks-b ">
<div v-if="item.DirectorRemarkList&&item.DirectorRemarkList.length>0">
<div>{{item.DirectorRemarkList[0].Content}}</div>
<div style="text-align: right">{{item.DirectorRemarkList[0].CreateBy}} {{item.DirectorRemarkList[0].CreateTime}}
<div v-if="item.DirectorRemark!=null||item.DirectorRemark!=''">
<div>{{item.DirectorRemark}}</div>
<div class="remarks-b-b" >
<span class="iconfont icon-xiangxia" style="color: #2961FE;font-size: 10px" ></span>
<q-popup-proxy v-if="item.DirectorRemarkList&&item.DirectorRemarkList.length>0">
<q-banner>
......@@ -275,7 +290,7 @@
</q-popup-proxy>
</div>
</div>
<span v-if="item.DirectorRemarkList && item.DirectorRemarkList.length==0">暂无</span>
<span v-if="item.DirectorRemark==null||item.DirectorRemark==''">暂无</span>
</div>
</div>
<div class="col">
......@@ -291,18 +306,56 @@
</div>
<q-dialog v-model="alert">
<q-card style="width: 400px;max-width:500px;">
<q-card-section>
<div class="text-h6">转交订单</div>
</q-card-section>
<q-card-section>
<div class="col row" style="justify-content: center;width: 100%">
<q-select
class=""
filled
label="转交人"
v-model="CareOfmsg.model"
use-input
hide-selected
fill-input
option-value="Id"
option-label="EmployeeName"
:options="options"
@filter="filterFn"
style="width: 250px; padding-bottom: 32px"
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
No results
</q-item-section>
</q-item>
</template>
</q-select>
</div>
</q-card-section>
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="alert=false" />
<q-btn label="保存" color="accent q-px-md" style="font-weight:400 !important" :loading="saveLoading"
@click="save_t()" />
</q-card-actions>
</q-card>
</q-dialog>
</div>
</template>
<script>
import {
getMyOrderPageList,//获取订单列表
getOrderStateEnumList,//订单状态
updateOrderRemark,//修改订单备注
setClassOrderCareOf,//订单转交
} from '../../api/sale/sale';
import {
getSchoolDropdown, //获取校区列表
getTeacherDropDownList,
} from '../../api/school/index';
queryEmployee
} from '../../api/users/user'
import {
queryCourseDropdownList,
} from '../../api/course/index'
......@@ -340,6 +393,14 @@
OrderState: [],
pageCount: 0,
ClassList: [], //关联课程下拉数据
alert:false,
options:[],
CareOfmsg:{
model:'',
OrderId:0,
},
saveLoading:false
}
},
created() {
......@@ -385,7 +446,6 @@
this.getList()
},
resetSearch() {
console.log(2)
this.msg.pageIndex = 1;
this.getList()
},
......@@ -420,6 +480,86 @@
path: tempStr
});
},
transfer(item){//转交
this.alert =true;
this.CareOfmsg.OrderId = item.OrderId
},
alterremarks(remark,item,type){//修改销售备注
let msg={
OrderId:item.OrderId,
Type:type,
Remark:remark
}
let title=''
if(type==1){title='修改销售备注'}else if(type==2){title='修改教务备注'}else if(type==3){title='修改校长备注'}else if(type==4){title='修改总经理备注'}
this.$q.dialog({
title: title,
message: '',
prompt: {
model: remark,
type: 'text' // optional
},
cancel: true,
persistent: true
}).onOk(data => {
msg.Remark = data
updateOrderRemark(msg).then(res => {
if(res.Code==1){
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '操作成功',
position: 'top'
})
this.getList()
}
}).catch(() => {
})
}).onCancel(() => {
}).onDismiss(() => {
})
},
filterFn(val,update){
var qMsg = {
EmployeeName: val
}
update(() => {
queryEmployee(qMsg).then(res => {
if(res.Code==1){
this.options = res.Data;
}
}).catch(() => {
})
})
},
save_t(){
let msg = {
OrderId:this.CareOfmsg.OrderId,
CareOfPeople:this.CareOfmsg.model.Id
}
setClassOrderCareOf(msg).then(res => {
if(res.Code==1){
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '转交成功',
position: 'top'
})
this.getList()
this.alert = false
}
}).catch(() => {
})
}
......@@ -564,6 +704,10 @@
padding: 15px;
font-size: 12px;
color: #999999;
position: relative;
}
.myOrder .remarks-b-b{
text-align: right;position: absolute;right: 10px;bottom: 10px
}
</style>
......@@ -8,15 +8,13 @@
<div class="col-2 q-table__title" @click="goreturn">返回</div>
<q-space />
<div class="page-option">
<q-btn color="accent" size="sm" icon="add" label="新增名单" @click="persistent=true" />
<q-btn color="accent" size="sm" icon="add" label="新增名单" @click="addxue" />
</div>
</template>
<template v-slot:body-cell-Status="props">
<template v-slot:body-cell-Sex="props">
<q-td :props="props">
<q-toggle size="sm" color="secondary" :false-value="1" :true-value="0" v-model="props.row.Status"
title="注意:关闭后,分类将无法正常使用." @input="DeleteRole(props.row)" />
<span >{{props.row.Sex==1?'男':'女'}}</span>
</q-td>
</template>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="pageCount"
......@@ -26,12 +24,14 @@
<q-td :props="props">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
@click="EditRole(props.row)" />
<q-btn flat size="xs" icon="iconfont icon-shanchu" color="negative" style="font-weight:400"
class="q-mr-xs" label="删除" @click="deleteUser(props.row)" />
</q-td>
</template>
</q-table>
</div>
<q-dialog v-model="persistent" content-class="bg-grey-1" transition-show="scale"
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale"
transition-hide="scale">
<q-card style="width: 800px;max-width:900px;">
<q-card-section>
......@@ -40,22 +40,32 @@
<div class="text-caption q-mb-lg q-px-md text-grey-6">基础信息</div>
<q-card-section class="q-pt-none">
<div class="row wrap">
<q-input clearable filled class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white" v-model="addMsg.From" label="公文来源(FR)" :rules="[val => !!val || '公文来源(FR)']"/>
<q-select class="col-6 q-pb-lg q-pr-lg" multiple clearable filled stack-label use-input use-chips
option-value="Id" option-label="EmployeeName" v-model="tempManager2" ref="ManagerId" :options="PersionList"
label="默认抄送" :dense="false" emit-value map-options @filter="filterFn">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
<q-input clearable filled class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white" v-model="addMsg.GuestName" label="姓名" :rules="[val => !!val || '姓名']"/>
<q-input clearable filled class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white" v-model="addMsg.Profession" label="职业" :rules="[val => !!val || '职业']"/>
<div class="col-6 q-pb-lg q-pr-lg">
<q-radio v-model="addMsg.Sex" val="1" label="男" />
<q-radio v-model="addMsg.Sex" val="2" label="女" />
</div>
<q-input clearable filled class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white" v-model="addMsg.Age" label="年龄" :rules="[val => !!val || '年龄']"/>
<q-input clearable filled class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white" v-model="addMsg.Mobile" label="电话" :rules="[val => !!val || '电话']" type="number"/>
<q-select class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white" option-value="Name" option-label="Name"
v-model="addMsg.Basics" :options="GBList" emit-value map-options label="语音基础" use-input new-value-mode="add-unique" hint="自己输入语音基础的话,输入之后按回车!"/>
<q-select class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white" option-value="Id" option-label="Name"
v-model="addMsg.Education" :options="GEList" emit-value map-options label="最高学历" />
<q-select class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white" option-value="Id" option-label="Name"
v-model="addMsg.LearningGoals" :options="GLList" emit-value map-options label="学习目的" />
<q-select class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white" option-value="Id" option-label="Name"
v-model="addMsg.GuestSource" :options="OFList" emit-value map-options label="客人来源" />
</div>
</q-card-section>
<div class="text-caption q-mb-lg q-px-md text-grey-6">附加信息</div>
<q-card-section>
<div class="row wrap">
<q-input clearable filled class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white" v-model="addMsg.Contact" label="重要联系人" />
<q-input clearable filled class="col-6 q-pb-lg q-pr-lg" standout="bg-primary text-white" v-model="addMsg.ContactMobile" label="重要联系电话" />
</div>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
......@@ -70,76 +80,83 @@
<script>
import {
getOrderGuestPageList,
getGuestBasicsEnumList,//日语基础枚举
getGuestEducationEnumList,//学历枚举
getGuestLearningGoalsEnumList,//获取学习目的 枚举
getOrderFormEnumList,//来自
setOrderGuestInfo,//保存
delOrderGuestInfo,//删除
} from '../../api/sale/sale'
export default {
data() {
return {
currentUrl: "",
columns: [{
name: 'RoleId',
name: 'GuestName',
label: '名称',
field: 'RoleId',
field: 'GuestName',
align: 'left'
},
{
name: 'RoleName',
name: 'Profession',
field: 'Profession',
required: true,
label: '职业',
align: 'left',
field: row => row.RoleName
},
{
name: 'RoleId',
name: 'Sex',
label: '性别',
field: 'RoleId',
align: 'left'
},
{
name: 'RoleId',
name: 'Age',
label: '年龄',
field: 'RoleId',
field: 'Age',
align: 'left'
},
{
name: 'RoleId',
name: 'Mobile',
label: '电话',
field: 'RoleId',
field: 'Mobile',
align: 'left'
},
{
name: 'RoleId',
name: 'Basics',
label: '日语基础',
field: 'RoleId',
field: 'Basics',
align: 'left'
},
{
name: 'RoleId',
name: 'GuestSourceName',
label: '客户来源',
field: 'RoleId',
field: 'GuestSourceName',
align: 'left'
},
{
name: 'RoleId',
name: 'LearningGoalsName',
label: '学日语目的',
field: 'RoleId',
field: 'LearningGoalsName',
align: 'left'
},
{
name: 'RoleId',
name: 'Contact',
label: '重要联系人',
field: 'RoleId',
field: 'Contact',
align: 'left'
},
{
name: 'RoleId',
name: 'ContactMobile',
label: '重要联系电话',
field: 'RoleId',
field: 'ContactMobile',
align: 'left'
},
{
name: 'optioned',
label: '操作',
field: 'RoleId'
}
],
data: [],
......@@ -154,19 +171,76 @@
},
pageCount: 0,
persistent:false,
saveLoading:false,
addMsg:{
Id:0,
OrderId:0,
GuestName:'',
Profession:'',
Sex:'1',
Age:0,
Mobile:'',
Basics:'',
Education:'',//学历
GuestSource:'',//来源
LearningGoals:"",// 学习目的
Contact:'',//紧急联系人
ContactMobile:'',//紧急联系电话
},
GBList:[],
GEList:[],
GLList:[],
OFList:[],
}
},
mounted() {
if(this.$route.query){
this.msg.OrderId =this.$route.query.OrderId
this.msg.OrderId =this.$route.query.OrderId;
this.addMsg.OrderId =this.$route.query.OrderId;
this.msg.ClassId =this.$route.query.ClassId
}
this.getRolelist()
this.getRolelist();
this.getGuestBasics()//日语基础枚举
this.getGuestEducation()//学历枚举
this.getGuestLearning()//获取学习目的 枚举
this.getOrderForm()
},
methods: {
getGuestBasics(){
getGuestBasicsEnumList({}).then(res => {
if(res.Code==1){
this.GBList = res.Data
}
}).catch(() => {
})
},
getGuestEducation(){
getGuestEducationEnumList({}).then(res => {
if(res.Code==1){
this.GEList = res.Data;
}
}).catch(() => {
})
},
getGuestLearning(){
getGuestLearningGoalsEnumList({}).then(res => {
if(res.Code==1){
this.GLList = res.Data;
this.addMsg.LearningGoals = this.GLList[0].Id
}
}).catch(() => {
})
},
getOrderForm(){
getOrderFormEnumList({}).then(res => {
if(res.Code==1){
this.OFList = res.Data
this.addMsg.GuestSource = this.OFList[0].Id
}
}).catch(() => {
})
},
//重新查询
resetSearch() {
this.msg.pageIndex = 1;
......@@ -190,6 +264,108 @@
},
goreturn(){
this.$router.go(-1)
},
closeSaveForm(){
this.persistent=false
},
save_t(){
if(this.addMsg.Basics==''){
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择语言基础`
})
return;
}
if(this.addMsg.Education==''){
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择学历`
})
return;
}
this.saveLoading=true
setOrderGuestInfo(this.addMsg).then(res => {
if(res.Code==1){
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '保存成功!',
position: 'top'
})
this.saveLoading=false;
this.persistent=false;
this.resetSearch()
this.initialize()
}
}).catch(() => {
this.saveLoading=false
})
},
initialize(){//初始化数据
this.addMsg= {
Id:0,
OrderId:this.$route.query.OrderId,
GuestName:'',
Profession:'',
Sex:'1',
Age:0,
Mobile:'',
Basics:'',
Education:'',//学历
GuestSource:this.OFList[0].Id,//来源
LearningGoals:this.GLList[0].Id,// 学习目的
Contact:'',//紧急联系人
ContactMobile:'',//紧急联系电话
}
},
addxue(){
this.persistent = true;
this.initialize()
},
EditRole(item){
this.addMsg.Id= item.Id
this.addMsg.GuestName= item.GuestName
this.addMsg.Profession= item.Profession
this.addMsg.Sex= item.Sex.toString()
this.addMsg.Age= item.Age
this.addMsg.Mobile= item.Mobile
this.addMsg.Basics= item.Basics
this.addMsg.Education= item.Education
this.addMsg.GuestSource = item.GuestSource
this.addMsg.LearningGoals = item.LearningGoals
this.addMsg.Contact = item.Contact
this.addMsg.ContactMobile = item.ContactMobile;
this.persistent= true
},
deleteUser(item){
let that = this
this.$q.dialog({
title: '提示信息',
message: '是否删除此学员!',
cancel: true,
persistent: true,
ok: "确定",
cancel: "取消",
}).onOk(() => {
delOrderGuestInfo({GuestId:item.Id}).then(res => {
if (res.Code == 1) {
that.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '操作成功',
position: 'top'
})
that.getRolelist()
}
})
}).onCancel(() => {
});
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment