|
@@ -6,6 +6,18 @@
|
|
<!-- 页面搜索 -->
|
|
<!-- 页面搜索 -->
|
|
<div>
|
|
<div>
|
|
<a-form :model="searchData" layout="inline" >
|
|
<a-form :model="searchData" layout="inline" >
|
|
|
|
+ <div class="search_nav">
|
|
|
|
+ <a-form-item label="课程名">
|
|
|
|
+ <a-input v-model="searchData.title"></a-input>
|
|
|
|
+ </a-form-item>
|
|
|
|
+ <a-form-item label="用户名">
|
|
|
|
+ <a-input v-model="searchData.uname"></a-input>
|
|
|
|
+ </a-form-item>
|
|
|
|
+ <a-form-item>
|
|
|
|
+ <a-button type="primary" @click="search">搜索</a-button>
|
|
|
|
+ <a-button @click="reset">清空</a-button>
|
|
|
|
+ </a-form-item>
|
|
|
|
+ </div>
|
|
<a-form-item>
|
|
<a-form-item>
|
|
<a-button type="primary" @click="add">开通课程</a-button>
|
|
<a-button type="primary" @click="add">开通课程</a-button>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
@@ -54,29 +66,33 @@
|
|
<!-- 新增--编辑弹窗 -->
|
|
<!-- 新增--编辑弹窗 -->
|
|
<a-modal v-model:visible="addPop" :title="addData.id ? '编辑订单' :'新增订单'" @ok="submit" okText="确定" cancelText="取消" >
|
|
<a-modal v-model:visible="addPop" :title="addData.id ? '编辑订单' :'新增订单'" @ok="submit" okText="确定" cancelText="取消" >
|
|
<a-form :model="addData" :labelCol="{ style: 'width:120px' }" ref="formRef" :rules="rules">
|
|
<a-form :model="addData" :labelCol="{ style: 'width:120px' }" ref="formRef" :rules="rules">
|
|
- <a-form-item label="订单名称" name="name">
|
|
|
|
|
|
+ <a-form-item label="手机号" name="phoneNumber">
|
|
<!-- 订单名称 -->
|
|
<!-- 订单名称 -->
|
|
- <a-input class="tasktype" placeholder="请输入名称" v-model:value="addData.name"></a-input>
|
|
|
|
|
|
+ <a-input class="tasktype" placeholder="请输入手机号" v-model:value="addData.phoneNumber" @pressEnter="searchUser">
|
|
|
|
+ <template #addonAfter >
|
|
|
|
+ <a-tooltip title="search">
|
|
|
|
+ <a-button type="text" size="small" @click="searchUser">
|
|
|
|
+ {{ '搜索' }}
|
|
|
|
+ </a-button>
|
|
|
|
+ </a-tooltip>
|
|
|
|
+ </template>
|
|
|
|
+ </a-input>
|
|
|
|
+ </a-form-item>
|
|
|
|
+ <a-form-item label="用户姓名">
|
|
|
|
+ <a-input class="tasktype" disabled placeholder="请输入手机号查找用户" v-model:value="addData.userName"/>
|
|
|
|
+ </a-form-item>
|
|
|
|
+ <a-form-item label="课程" name="curr">
|
|
|
|
+ <a-select
|
|
|
|
+ v-model:value="addData.cid"
|
|
|
|
+ :options="currOptions"
|
|
|
|
+ ></a-select>
|
|
|
|
+ </a-form-item>
|
|
|
|
+ <a-form-item label="渠道" name="source">
|
|
|
|
+ <a-select
|
|
|
|
+ v-model:value="addData.channel"
|
|
|
|
+ :options="sourceOptions"
|
|
|
|
+ ></a-select>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
- <!-- <a-form-item label="链接地址" name="href"> -->
|
|
|
|
- <!-- 门店地址 -->
|
|
|
|
- <!-- <a-input class="tasktype" placeholder="请输入链接地址" v-model:value="addData.href"></a-input>
|
|
|
|
- </a-form-item> -->
|
|
|
|
- <!-- <a-form-item label="上传图片" name="img">
|
|
|
|
- <ul class="upImg">
|
|
|
|
-
|
|
|
|
- <li class="img_icon" v-if="addData.coverimg">
|
|
|
|
- <CloseCircleTwoTone class="icon_del" @click="delAdCover()"/>
|
|
|
|
- <img :src="addData.coverimg" >
|
|
|
|
- </li>
|
|
|
|
- <li class="upload" v-else >
|
|
|
|
- <uploadImg path="cms/admin/img"
|
|
|
|
- class="upload-img"
|
|
|
|
- @imgSuccess="(url) => adCoverSuccess(url)" :imgUrl="addData.img" />
|
|
|
|
- </li>
|
|
|
|
- <li class="warn">*请上传尺寸1440px*520px,png或jpeg格式的图片</li>
|
|
|
|
- </ul>
|
|
|
|
- </a-form-item> -->
|
|
|
|
</a-form>
|
|
</a-form>
|
|
</a-modal>
|
|
</a-modal>
|
|
</div>
|
|
</div>
|
|
@@ -93,13 +109,13 @@ import { curriculAJAXREQUEST } from "@/api";
|
|
import AJAXPATH from "@/api/path";
|
|
import AJAXPATH from "@/api/path";
|
|
|
|
|
|
import { message } from 'ant-design-vue'
|
|
import { message } from 'ant-design-vue'
|
|
-import { CloseCircleTwoTone,CloseCircleOutlined } from '@ant-design/icons-vue';
|
|
|
|
-
|
|
|
|
|
|
+import { CloseCircleTwoTone,SearchOutlined,CloseCircleOutlined } from '@ant-design/icons-vue';
|
|
|
|
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
components: {
|
|
components: {
|
|
uploadImg,
|
|
uploadImg,
|
|
- CloseCircleTwoTone
|
|
|
|
|
|
+ CloseCircleTwoTone,
|
|
|
|
+ SearchOutlined
|
|
},
|
|
},
|
|
setup() {
|
|
setup() {
|
|
// 路由
|
|
// 路由
|
|
@@ -144,7 +160,60 @@ export default defineComponent({
|
|
mokeDataList.value = JSON.parse(JSON.stringify(dataList.value))
|
|
mokeDataList.value = JSON.parse(JSON.stringify(dataList.value))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- //新增数据
|
|
|
|
|
|
+
|
|
|
|
+ const searchUser = async()=>{
|
|
|
|
+ const { code, data} = await curriculAJAXREQUEST({
|
|
|
|
+ path: AJAXPATH.getUser.path,
|
|
|
|
+ method: 'get',
|
|
|
|
+ data:{
|
|
|
|
+ phoneNumber: addData.value.phoneNumber
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ if(code == 0&&data.length==1){
|
|
|
|
+ console.log(data)
|
|
|
|
+ addData.value.uid = data[0].id
|
|
|
|
+ addData.value.userName = data[0].nickName
|
|
|
|
+ }else{
|
|
|
|
+ message.error('没有搜索到此用户!');
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ const currOptions = ref({})
|
|
|
|
+ const getCurrOptions = async() =>{
|
|
|
|
+ const { code, data } = await curriculAJAXREQUEST({
|
|
|
|
+ path: AJAXPATH.courseList.path,
|
|
|
|
+ method: "get",
|
|
|
|
+ data: {},
|
|
|
|
+ });
|
|
|
|
+ if(code == 0){
|
|
|
|
+ console.log(data)
|
|
|
|
+ let op = []
|
|
|
|
+ data.map(item=>{
|
|
|
|
+ op.push({value:item.id,label:item.title})
|
|
|
|
+ })
|
|
|
|
+ currOptions.value = op
|
|
|
|
+ }else{
|
|
|
|
+ message.error('获取课程列表失败,请刷新页面!');
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ const sourceOptions = ref({})
|
|
|
|
+ const getSourceOptions = async() =>{
|
|
|
|
+ const { code, data } = await curriculAJAXREQUEST({
|
|
|
|
+ path: AJAXPATH.channelList.path,
|
|
|
|
+ method: "get",
|
|
|
|
+ data: {},
|
|
|
|
+ });
|
|
|
|
+ if(code == 0){
|
|
|
|
+ console.log(data)
|
|
|
|
+ let op = []
|
|
|
|
+ data.map(item=>{
|
|
|
|
+ op.push({value:item.id,label:item.name})
|
|
|
|
+ })
|
|
|
|
+ sourceOptions.value = op
|
|
|
|
+ } else {
|
|
|
|
+ message.error('获取渠道列表失败,请刷新页面!');
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //新增数据
|
|
const add = () =>{
|
|
const add = () =>{
|
|
// 将addData置空
|
|
// 将addData置空
|
|
addData.value = {}
|
|
addData.value = {}
|
|
@@ -189,7 +258,7 @@ export default defineComponent({
|
|
getData()
|
|
getData()
|
|
}
|
|
}
|
|
// 上传图片
|
|
// 上传图片
|
|
- const addimg = ref({})
|
|
|
|
|
|
+ // const addimg = ref({})
|
|
// const imgData = ref()
|
|
// const imgData = ref()
|
|
|
|
|
|
const adCoverSuccess = (imgUrl)=>{
|
|
const adCoverSuccess = (imgUrl)=>{
|
|
@@ -229,7 +298,7 @@ export default defineComponent({
|
|
const { code} = await curriculAJAXREQUEST({
|
|
const { code} = await curriculAJAXREQUEST({
|
|
path: AJAXPATH.orderList.path,
|
|
path: AJAXPATH.orderList.path,
|
|
method: 'POST',
|
|
method: 'POST',
|
|
- data: addData.value,
|
|
|
|
|
|
+ data: {...addData.value,price:'0',payAt:"0"},
|
|
});
|
|
});
|
|
if(code == 0){
|
|
if(code == 0){
|
|
// if(!status){
|
|
// if(!status){
|
|
@@ -276,6 +345,8 @@ export default defineComponent({
|
|
//页面加载
|
|
//页面加载
|
|
onMounted(() =>{
|
|
onMounted(() =>{
|
|
getData()
|
|
getData()
|
|
|
|
+ getCurrOptions()
|
|
|
|
+ getSourceOptions()
|
|
})
|
|
})
|
|
|
|
|
|
return{
|
|
return{
|
|
@@ -315,6 +386,8 @@ export default defineComponent({
|
|
},
|
|
},
|
|
],
|
|
],
|
|
searchData,
|
|
searchData,
|
|
|
|
+ currOptions,
|
|
|
|
+ sourceOptions,
|
|
addData,
|
|
addData,
|
|
addPop,
|
|
addPop,
|
|
dataList,
|
|
dataList,
|
|
@@ -329,6 +402,9 @@ export default defineComponent({
|
|
delSubmit,
|
|
delSubmit,
|
|
adCoverSuccess,
|
|
adCoverSuccess,
|
|
delAdCover,
|
|
delAdCover,
|
|
|
|
+ searchUser,
|
|
|
|
+ getCurrOptions,
|
|
|
|
+ getSourceOptions,
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
|