diff --git a/admin/vite.config.js b/admin/vite.config.js index be587f0..82c7c9a 100644 --- a/admin/vite.config.js +++ b/admin/vite.config.js @@ -16,6 +16,14 @@ export default defineConfig({ build: { outDir: `../public/${admin_path}`, assetsDir: 'lib' }, + server:{ + fs: { + allow: [ + 'D:\\Code\\lanke\\tijian\\sixin\\admin', + 'D:\\Code\\lanke\\tijian\\sixin\\node_modules' + ], + }, + }, resolve: {alias: {'~/': `${path.resolve(__dirname, 'src')}/`}}, plugins: [Vue({reactivityTransform: true}), viteCommonjs(), Pages(), Layouts(), AutoImport({ imports: ['vue', 'vue/macros', 'vue-router', '@vueuse/core',], diff --git a/app/Http/Controllers/ChatController.php b/app/Http/Controllers/ChatController.php index e9e65bd..e1cc9db 100644 --- a/app/Http/Controllers/ChatController.php +++ b/app/Http/Controllers/ChatController.php @@ -72,16 +72,15 @@ class ChatController extends Controller public function GetWorkOrderList(){ Login::user(); $UserId=Login::$info->id; -// $query=DB::table('chat_workorders')->where( -// 'userid','=',$UserId )->where('status','<>',0) -// ->where( 'del','=',2)->get(); + //查看是否有未完结工单 + $IncompleteCount=DB::table('chat_workorders')->where('userid',$UserId)->whereIn('status',[1,2])->count(); $query=DB::select("SELECT a.title,a.status,a.created_at ,b.content,a.id FROM ( SELECT * FROM chat_workorders WHERE userid = ? AND STATUS <> 0 AND del = 2 ) AS a LEFT JOIN ( select * from( select * from chat_lists where userid = ? AND msg_type = 0 ) as aa INNER JOIN (SELECT max(id) as bid, work_order_id as w_id FROM chat_lists WHERE userid = ? AND msg_type = 0 GROUP BY work_order_id) as bb on aa.id=bb.bid) AS b ON a.id = b.work_order_id order by a.id desc",[$UserId,$UserId,$UserId] ); - return Yo::echo(['status' => true,'list'=>$query]); + return Yo::echo(['status' => true,'list'=>$query,'incompleteCount'=>$IncompleteCount]); } //admin获取工单列表 public function GetAdminWorkOrderList(){ @@ -146,6 +145,21 @@ class ChatController extends Controller return Yo::echo(['status' => false,'msg'=>'操作失败']); } } + //H5用户自己关闭工单 + public function UserChangeWorkOrder(){ + $WorkOrderId=request('WorkOrder'); + Login::user(); + $UserId=Login::$info->id; + $u=DB::table('chat_workorders')->where(['id'=>$WorkOrderId,'userid'=>$UserId])->update([ + 'status'=>3 + ]); + if($u){ + return Yo::echo(['status' => true,'msg'=>'操作完成']); + }else{ + return Yo::echo(['status' => false,'msg'=>'操作失败']); + } + } + } diff --git a/routes/web.php b/routes/web.php index 5f5afcd..7766d7e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -178,3 +178,4 @@ Route::post("api/$admin_api/Chat/GetAdminWorkOrderList", [\App\Http\Controllers\ Route::post("api/$admin_api/Chat/GetAdminMsgList", [\App\Http\Controllers\ChatController::class, 'GetAdminMsgList']); Route::post("api/$admin_api/Chat/adminInsertMsg", [\App\Http\Controllers\ChatController::class, 'adminInsertMsg']); Route::post("api/$admin_api/Chat/changeWorkOrder", [\App\Http\Controllers\ChatController::class, 'changeWorkOrder']); +Route::post("api/$mp_api/Chat/UserChangeWorkOrder", [\App\Http\Controllers\ChatController::class, 'UserChangeWorkOrder']); diff --git a/思信体检平台H5/api/api.js b/思信体检平台H5/api/api.js index 2e0d286..06a7efb 100644 --- a/思信体检平台H5/api/api.js +++ b/思信体检平台H5/api/api.js @@ -16,6 +16,7 @@ url_array['Chat/creatNew'] = `${url_}/api/Mp/Chat/creatNew`;//新建对话 url_array['Chat/InsertMsg'] = `${url_}/api/Mp/Chat/InsertMsg`; //留言插入 url_array['Chat/GetSelfMsgList'] = `${url_}/api/Mp/Chat/GetSelfMsgList`;//获取留言列表(聊天记录) url_array['Chat/GetWorkOrderList'] = `${url_}/api/Mp/Chat/GetWorkOrderList`;//获取工单列表 +url_array['Chat/UserChangeWorkOrder'] = `${url_}/api/Mp/Chat/UserChangeWorkOrder`;//更改工单状态 url_array['YO'] = `${url_}/api/yo`; const api = (mark) => { diff --git a/思信体检平台H5/api/index.js b/思信体检平台H5/api/index.js index bedd31f..bbcd009 100644 --- a/思信体检平台H5/api/index.js +++ b/思信体检平台H5/api/index.js @@ -52,6 +52,12 @@ export const ChatGetWorkOrderListAction = async (data) => await $post({ url: 'Chat/GetWorkOrderList', data }) +//更改工单状态 +export const ChatChangeWorkOrderAction = async (data) => await $post({ + url: 'Chat/UserChangeWorkOrder', + data +}) + export const $image = (path) => { return `${url_}${path}` } diff --git a/思信体检平台H5/pages/chat/chat.vue b/思信体检平台H5/pages/chat/chat.vue index 668838a..57cfccb 100644 --- a/思信体检平台H5/pages/chat/chat.vue +++ b/思信体检平台H5/pages/chat/chat.vue @@ -27,14 +27,23 @@ + + 关闭此工单 + - + - + + + + + + @@ -47,12 +56,57 @@ import { ChatInsertMsgAction, ChatGetSelfMsgListAction, + ChatChangeWorkOrderAction, $response } from '@/api' + + let switchchecked=ref(true); + let alertDialog=ref(null) + const dialogClose=()=>{ + + switchchecked.value=true + } + + //关闭工单 + const CloseWorkOrderChange=(e)=>{ + if(e.detail.value==false){ + alertDialog.value.open() + switchchecked.value=false + } + + } + let workOrderId=ref('') + onLoad((option)=>{ workOrderId.value=option.workorder }) + //更改工单状态 + const dialogConfirm=async ()=>{ + let data={ + WorkOrder:workOrderId.value + } + const response = await ChatChangeWorkOrderAction(data) + $response(response, () => { + console.log(response) + if(response.data.status){ + uni.showToast({ + title: "工单成功关闭", + duration: 2000, + icon:'none' + }); + getList() + }else{ + uni.showToast({ + title: response.data.msg, + duration: 2000, + icon:'none' + }); + } + }) + } + + let msgContent = ref("") let chatList=ref([]) //聊天记录 let workOrderstatus=ref('')//工单状态 diff --git a/思信体检平台H5/pages/chat/orderList.vue b/思信体检平台H5/pages/chat/orderList.vue index 8bfd2d9..a7647f5 100644 --- a/思信体检平台H5/pages/chat/orderList.vue +++ b/思信体检平台H5/pages/chat/orderList.vue @@ -60,8 +60,18 @@ watch( let title=ref('') //点击右上角新建按钮 const creatClick=()=>{ - title.value='' - titleInputDialog.value.open() + if(IncompleteCount.value==0){ + title.value='' + titleInputDialog.value.open() + }else{ + uni.showToast({ + title: "存在未关闭工单,请先关闭,再创建新工单", + duration: 2000, + icon:'none' + }); + return false + } + } const creatNew = async () => { @@ -89,6 +99,7 @@ watch( } }) } + let IncompleteCount=ref(0) let orderList = ref([]) const getlist = async () => { uni.showLoading({ @@ -100,6 +111,7 @@ watch( console.log('---------------------') if (response.data.status) { orderList.value = response.data.list + IncompleteCount.value=response.data.incompleteCount } })