!274 批量操作未读信息和批量申请采购单

Merge pull request !274 from 杨建炊/fix-release-1.0.0/yjc-migrate
This commit is contained in:
杨建炊 2024-12-16 08:10:13 +00:00 committed by Gitee
commit 95b2182558
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
40 changed files with 136 additions and 38 deletions

View File

@ -48,7 +48,7 @@ class Controller extends BaseController
return $this->log->add($targetId, $targetField); return $this->log->add($targetId, $targetField);
} }
public function success($data, $msg = "") public function success($data=[], $msg = "")
{ {
return [ return [
"success" => true, "success" => true,

View File

@ -74,4 +74,15 @@ class WebsiteMessageController extends Controller
} }
} }
public function batchRead(Request $request)
{
$params = $request->validate([
'ids' => 'required|array'
], [
'ids.required' => '需要操作的ids'
]);
WebsiteMessages::query()->whereIn('id', $params['ids'])->update(['status' => 1]);
return $this->success();
}
} }

View File

@ -48,6 +48,11 @@ class PurchaseRecordController extends Controller
if (!empty($request->start_time) && !empty($request->end_time)) { if (!empty($request->start_time) && !empty($request->end_time)) {
$builder->whereBetween('created_at', [$request->start_time, $request->end_time]); $builder->whereBetween('created_at', [$request->start_time, $request->end_time]);
} }
if (!empty($request->date_start_time) && !empty($request->date_end_time)) {
$dateStart = Carbon::parse($request->date_start_time)->toDateString();
$dateEnd = Carbon::parse($request->date_end_time)->subDay()->toDateString();
$builder->whereBetween('date', [$dateStart, $dateEnd]);
}
if (!empty($request->title)) { if (!empty($request->title)) {
$builder->whereHas('goodsSku', function ($query) use ($request) { $builder->whereHas('goodsSku', function ($query) use ($request) {
$query->where('name', 'like', '%' . $request->title . '%'); $query->where('name', 'like', '%' . $request->title . '%');

View File

@ -1 +1 @@
#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.searchBox[data-v-3852f03c]{display:flex;align-items:center;flex-wrap:wrap;white-space:nowrap}.searchBox .row[data-v-3852f03c]{font-size:14px;margin-bottom:20px;margin-right:15px;display:flex;align-items:center}.bgBox[data-v-3852f03c]{position:relative;border-radius:5px;background-color:#f5f2f2;margin-bottom:15px;padding:15px 30px 15px 0}.bgBox .close[data-v-3852f03c]{color:red;position:absolute;right:5px;top:5px;font-size:20px;cursor:pointer}.btn[data-v-3852f03c]{display:flex;align-items:center;font-size:14px;color:#409eff;cursor:pointer;width:-moz-fit-content;width:fit-content} #nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.searchBox[data-v-3db31744]{display:flex;align-items:center;flex-wrap:wrap;white-space:nowrap}.searchBox .row[data-v-3db31744]{font-size:14px;margin-bottom:20px;margin-right:15px;display:flex;align-items:center}.bgBox[data-v-3db31744]{position:relative;border-radius:5px;background-color:#f5f2f2;margin-bottom:15px;padding:15px 30px 15px 0}.bgBox .close[data-v-3db31744]{color:red;position:absolute;right:5px;top:5px;font-size:20px;cursor:pointer}.btn[data-v-3db31744]{display:flex;align-items:center;font-size:14px;color:#409eff;cursor:pointer;width:-moz-fit-content;width:fit-content}.opaBox[data-v-3db31744]{margin-bottom:15px}

View File

@ -1 +0,0 @@
#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.aside-show[data-v-0f97ca5c]{transition:all .3s;opacity:0;width:0!important}.aside-hide[data-v-0f97ca5c]{transition:all .3s;opacity:1;width:200px!important}.el-container[data-v-0f97ca5c]{height:100vh}.el-aside[data-v-0f97ca5c]{background-color:#d3dce6;color:#333;overflow-x:hidden}.el-aside[data-v-0f97ca5c]::-webkit-scrollbar{width:8px}.el-aside[data-v-0f97ca5c]::-webkit-scrollbar-thumb{background-color:hsla(220,4%,58%,.3);border-radius:20px}.el-main[data-v-0f97ca5c]{background-color:#f0f2f5;color:#333;padding:0 0!important}.el-main[data-v-0f97ca5c]::-webkit-scrollbar{width:10px}.el-main[data-v-0f97ca5c]::-webkit-scrollbar-thumb{background-color:hsla(220,4%,58%,.3)}.box-card[data-v-0f97ca5c]{min-height:calc(100vh - 120px);margin:10px}.conent[data-v-0f97ca5c]{width:100%;min-height:calc(100vh - 200px);position:relative}.add[data-v-0f97ca5c]{cursor:pointer;font-size:16px;color:#606266}.head[data-v-0f97ca5c]{padding:10px;background-color:#fff;border-bottom:1px solid #f6f6f6;box-shadow:0 1px 4px rgba(0,21,41,.08)}.head ul[data-v-0f97ca5c]{display:flex;justify-content:space-between}.head ul li[data-v-0f97ca5c]{display:flex;align-items:center}.head ul li .right[data-v-0f97ca5c]{margin-left:20px}.head ul li .token[data-v-0f97ca5c]{cursor:pointer}.head ul li .msg[data-v-0f97ca5c]{margin-right:15px;font-size:20px;cursor:pointer}.head ul li .msg[data-v-0f97ca5c]:hover{color:#409eff}.el-aside[data-v-0f97ca5c]{background:#282c34;box-shadow:2px 0 6px rgba(0,21,41,.35)}[data-v-0f97ca5c] .el-menu{border:none}.el-menu-item[data-v-0f97ca5c]:hover{outline:0!important;background:#5470c6!important}.el-menu-item.is-active[data-v-0f97ca5c]{color:#fff!important;background:#5470c6!important}.el-menu-item-group__title[data-v-0f97ca5c]{padding:0 0!important}.msgbox[data-v-0f97ca5c]{padding:20px}.msgbox .numtag[data-v-0f97ca5c]{padding:1px 4px;font-size:12px;background:red;color:#fff;margin-left:10px;border-radius:50%}.msgbox .listbox[data-v-0f97ca5c]{height:550px;overflow:auto}.msgbox .listbox .item[data-v-0f97ca5c]{color:#555;font-size:14px;padding:20px 30px;box-sizing:border-box;border-bottom:1px solid #d7d7d7}.msgbox .listbox .item .title[data-v-0f97ca5c]{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;position:relative}.msgbox .listbox .item .title.notread[data-v-0f97ca5c]:after{position:absolute;left:-14px;width:7px;height:7px;border-radius:50%;top:8px;content:"";background:red}.msgbox .listbox .item .title .tit[data-v-0f97ca5c]{font-size:16px;width:calc(100% - 150px)}.msgbox .listbox .item .title span[data-v-0f97ca5c]{font-size:12px;color:#777}.msgbox .listbox .item .title span.not[data-v-0f97ca5c]{color:#409eff;cursor:pointer}.msgbox .listbox .item .info[data-v-0f97ca5c]{margin-bottom:10px;display:flex;justify-content:space-between}.msgbox .listbox .item .info .tit[data-v-0f97ca5c]{font-size:14px;width:calc(100% - 200px)}.msgbox .listbox .item .info .time[data-v-0f97ca5c]{font-size:14px}.bottom[data-v-0f97ca5c]{display:flex;align-items:center;justify-content:center;padding:20px 0;border-top:1px solid #d7d7d7}[data-v-0f97ca5c] .vanmsgbox .el-tabs__content{display:none}[data-v-0f97ca5c] .vanmsgbox .el-tabs--border-card{box-shadow:none}[data-v-0f97ca5c] .vanmsgbox .el-dialog__body{padding:0!important}

1
public/dist/css/850.4fa8ccec.css vendored Normal file
View File

@ -0,0 +1 @@
#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.aside-show[data-v-5d94a0ff]{transition:all .3s;opacity:0;width:0!important}.aside-hide[data-v-5d94a0ff]{transition:all .3s;opacity:1;width:200px!important}.el-container[data-v-5d94a0ff]{height:100vh}.el-aside[data-v-5d94a0ff]{background-color:#d3dce6;color:#333;overflow-x:hidden}.el-aside[data-v-5d94a0ff]::-webkit-scrollbar{width:8px}.el-aside[data-v-5d94a0ff]::-webkit-scrollbar-thumb{background-color:hsla(220,4%,58%,.3);border-radius:20px}.el-main[data-v-5d94a0ff]{background-color:#f0f2f5;color:#333;padding:0 0!important}.el-main[data-v-5d94a0ff]::-webkit-scrollbar{width:10px}.el-main[data-v-5d94a0ff]::-webkit-scrollbar-thumb{background-color:hsla(220,4%,58%,.3)}.box-card[data-v-5d94a0ff]{min-height:calc(100vh - 120px);margin:10px}.conent[data-v-5d94a0ff]{width:100%;min-height:calc(100vh - 200px);position:relative}.add[data-v-5d94a0ff]{cursor:pointer;font-size:16px;color:#606266}.head[data-v-5d94a0ff]{padding:10px;background-color:#fff;border-bottom:1px solid #f6f6f6;box-shadow:0 1px 4px rgba(0,21,41,.08)}.head ul[data-v-5d94a0ff]{display:flex;justify-content:space-between}.head ul li[data-v-5d94a0ff]{display:flex;align-items:center}.head ul li .right[data-v-5d94a0ff]{margin-left:20px}.head ul li .token[data-v-5d94a0ff]{cursor:pointer}.head ul li .msg[data-v-5d94a0ff]{margin-right:15px;font-size:20px;cursor:pointer}.head ul li .msg[data-v-5d94a0ff]:hover{color:#409eff}.el-aside[data-v-5d94a0ff]{background:#282c34;box-shadow:2px 0 6px rgba(0,21,41,.35)}[data-v-5d94a0ff] .el-menu{border:none}.el-menu-item[data-v-5d94a0ff]:hover{outline:0!important;background:#5470c6!important}.el-menu-item.is-active[data-v-5d94a0ff]{color:#fff!important;background:#5470c6!important}.el-menu-item-group__title[data-v-5d94a0ff]{padding:0 0!important}.msgbox[data-v-5d94a0ff]{padding:20px}.msgbox .numtag[data-v-5d94a0ff]{padding:1px 4px;font-size:12px;background:red;color:#fff;margin-left:10px;border-radius:50%}.msgbox .listbox[data-v-5d94a0ff]{height:550px;overflow:auto}.msgbox .listbox .item[data-v-5d94a0ff]{color:#555;font-size:14px;padding:20px 30px;box-sizing:border-box;border-bottom:1px solid #d7d7d7}.msgbox .listbox .item .title[data-v-5d94a0ff]{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;position:relative}.msgbox .listbox .item .title.notread[data-v-5d94a0ff]:after{position:absolute;left:-14px;width:7px;height:7px;border-radius:50%;top:8px;content:"";background:red}.msgbox .listbox .item .title .tit[data-v-5d94a0ff]{font-size:16px;width:calc(100% - 150px)}.msgbox .listbox .item .title span[data-v-5d94a0ff]{font-size:12px;color:#777}.msgbox .listbox .item .title span.not[data-v-5d94a0ff]{color:#409eff;cursor:pointer}.msgbox .listbox .item .info[data-v-5d94a0ff]{margin-bottom:10px;display:flex;justify-content:space-between}.msgbox .listbox .item .info .tit[data-v-5d94a0ff]{font-size:14px;width:calc(100% - 200px)}.msgbox .listbox .item .info .time[data-v-5d94a0ff]{font-size:14px}.bottom[data-v-5d94a0ff]{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-top:1px solid #d7d7d7}[data-v-5d94a0ff] .vanmsgbox .el-tabs__content{display:none}[data-v-5d94a0ff] .vanmsgbox .el-tabs--border-card{box-shadow:none}[data-v-5d94a0ff] .vanmsgbox .el-dialog__body{padding:0!important}

View File

@ -1 +1 @@
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>erp</title><script defer="defer" src="js/chunk-vendors.04652b46.js"></script><script defer="defer" src="js/app.30de8ae3.js"></script><link href="css/chunk-vendors.77489a8d.css" rel="stylesheet"><link href="css/app.7e37f273.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but erp doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html> <!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>erp</title><script defer="defer" src="js/chunk-vendors.04652b46.js"></script><script defer="defer" src="js/app.f1ce3c3c.js"></script><link href="css/chunk-vendors.77489a8d.css" rel="stylesheet"><link href="css/app.7e37f273.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but erp doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

2
public/dist/js/120.5d42b8fb.js vendored Normal file

File diff suppressed because one or more lines are too long

1
public/dist/js/120.5d42b8fb.js.map vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/dist/js/206.f31f5e61.js.map vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/dist/js/417.5d40a6d8.js.map vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,2 @@
"use strict";(self["webpackChunkerp"]=self["webpackChunkerp"]||[]).push([[688],{4702:function(e,t,a){a.r(t),a.d(t,{default:function(){return p}});var r=function(){var e=this,t=e._self._c;return t("div",[t("el-card",{attrs:{"body-style":{padding:"20px 20px 0 20px"}}},[t("el-form",{ref:"form",attrs:{inline:!0,model:e.form}},[t("el-form-item",{attrs:{label:"查询类别:"}},[t("el-select",{attrs:{placeholder:"全部"},model:{value:e.form.targetField,callback:function(t){e.$set(e.form,"targetField",t)},expression:"form.targetField"}},e._l(e.options,(function(e){return t("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})})),1)],1),t("el-form-item",{attrs:{label:"操作用户"}},[t("el-select",{attrs:{placeholder:"输入操作用户"},model:{value:e.form.userId,callback:function(t){e.$set(e.form,"userId",t)},expression:"form.userId"}},e._l(e.options1,(function(e){return t("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})})),1)],1),t("el-form-item",{attrs:{label:"操作时间:"}},[t("el-date-picker",{attrs:{type:"datetimerange","range-separator":"-","start-placeholder":"起","end-placeholder":"止","value-format":"yyyy-MM-dd HH:mm:ss"},model:{value:e.value1,callback:function(t){e.value1=t},expression:"value1"}})],1),t("el-form-item",[t("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.query(1)}}},[e._v("查询")])],1)],1)],1),t("el-card",{staticStyle:{"margin-top":"10px"}},[t("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.tableData,border:""}},[t("el-table-column",{attrs:{prop:"id",label:"序号",width:"70"}}),t("el-table-column",{attrs:{prop:"created_at",label:"时间",width:"200"}}),t("el-table-column",{attrs:{prop:"target_field",label:"类别",width:"100"}}),t("el-table-column",{attrs:{prop:"before_update",label:"操作前",resizable:e.ture}}),t("el-table-column",{attrs:{prop:"after_update",label:"操作后",resizable:e.ture}}),t("el-table-column",{attrs:{prop:"user.name",label:"操作人",width:"100"}})],1),t("div",{staticClass:"block"},[t("el-pagination",{attrs:{"current-page":e.current_page,"page-sizes":[15,50,100],"page-size":e.per_page,layout:"total, sizes, prev, pager, next, jumper",total:e.Paginationdata.total},on:{"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1)],1)],1)},l=[],n=a(2900),i=a(6791),u={data(){return{options:[{value:"cost",label:"成本"},{value:"stock",label:"库存"},{value:"inventory",label:"库存盘点"},{value:"status",label:"状态"},{value:"set",label:"设置"}],options1:[],form:{targetField:"",userId:""},value1:"",loading:!0,tableData:[],Paginationdata:{},current_page:1,per_page:15,moudule:"goods"}},methods:{getList(){let e={userId:this.form.userId,target_field:this.form.targetField,moudule:this.moudule,target_id:this.$route.query.id,startTime:this.value1[0],endTime:this.value1[1],page:this.current_page,per_page:this.per_page};(0,i.m)(e).then((e=>{this.tableData=e.data.data,this.Paginationdata=e.data.meta})),this.loading=!1},handleSizeChange(e){this.per_page=e,this.query(1)},handleCurrentChange(e){this.current_page=e,this.query(this.current_page)},getUser(){(0,n.Lh)().then((e=>{this.options1=e.data.data}))},query(e){let t={userId:this.form.userId,target_field:this.form.targetField,page:e,per_page:this.per_page,moudule:this.moudule,target_id:this.$route.query.id,startTime:this.value1[0],endTime:this.value1[1]};const a=r(t);function r(e){const t={};for(const a in e)0!==e[a]&&!e[a]||""===e[a].toString().replace(/(^\s*)|(\s*$)/g,"")||(t[a]=e[a]);return t}(0,i.m)(a).then((e=>{this.tableData=e.data.data,this.Paginationdata=e.data.meta}))}},mounted(){this.getList(),this.getUser()}},o=u,s=a(1001),d=(0,s.Z)(o,r,l,!1,null,"891ad2ec",null),p=d.exports},6791:function(e,t,a){a.d(t,{m:function(){return l}});var r=a(8430);function l(e){return(0,r.Z)({url:"/api/logs",method:"get",params:e})}},2900:function(e,t,a){a.d(t,{A0:function(){return d},AX:function(){return o},Lh:function(){return n},RF:function(){return i},Uy:function(){return l},f7:function(){return u},nO:function(){return s}});var r=a(8430);function l(){return(0,r.Z)({url:"/api/roles",method:"get"})}function n(e){return(0,r.Z)({url:"/api/users",method:"get",params:e})}function i(e){return(0,r.Z)({url:"/api/users",method:"post",data:e})}function u(e){return(0,r.Z)({url:`/api/users/${e}`,method:"get"})}function o(e,t){return(0,r.Z)({url:`/api/users/${e}`,method:"patch",data:t})}function s(e){return(0,r.Z)({url:"/api/website_message",method:"get",params:e})}function d(e,t){return(0,r.Z)({url:`/api/website_message/${e}`,method:"patch",data:t})}}}]); "use strict";(self["webpackChunkerp"]=self["webpackChunkerp"]||[]).push([[688],{4702:function(e,t,a){a.r(t),a.d(t,{default:function(){return p}});var r=function(){var e=this,t=e._self._c;return t("div",[t("el-card",{attrs:{"body-style":{padding:"20px 20px 0 20px"}}},[t("el-form",{ref:"form",attrs:{inline:!0,model:e.form}},[t("el-form-item",{attrs:{label:"查询类别:"}},[t("el-select",{attrs:{placeholder:"全部"},model:{value:e.form.targetField,callback:function(t){e.$set(e.form,"targetField",t)},expression:"form.targetField"}},e._l(e.options,(function(e){return t("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})})),1)],1),t("el-form-item",{attrs:{label:"操作用户"}},[t("el-select",{attrs:{placeholder:"输入操作用户"},model:{value:e.form.userId,callback:function(t){e.$set(e.form,"userId",t)},expression:"form.userId"}},e._l(e.options1,(function(e){return t("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})})),1)],1),t("el-form-item",{attrs:{label:"操作时间:"}},[t("el-date-picker",{attrs:{type:"datetimerange","range-separator":"-","start-placeholder":"起","end-placeholder":"止","value-format":"yyyy-MM-dd HH:mm:ss"},model:{value:e.value1,callback:function(t){e.value1=t},expression:"value1"}})],1),t("el-form-item",[t("el-button",{attrs:{type:"primary"},on:{click:function(t){return e.query(1)}}},[e._v("查询")])],1)],1)],1),t("el-card",{staticStyle:{"margin-top":"10px"}},[t("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{width:"100%"},attrs:{data:e.tableData,border:""}},[t("el-table-column",{attrs:{prop:"id",label:"序号",width:"70"}}),t("el-table-column",{attrs:{prop:"created_at",label:"时间",width:"200"}}),t("el-table-column",{attrs:{prop:"target_field",label:"类别",width:"100"}}),t("el-table-column",{attrs:{prop:"before_update",label:"操作前",resizable:e.ture}}),t("el-table-column",{attrs:{prop:"after_update",label:"操作后",resizable:e.ture}}),t("el-table-column",{attrs:{prop:"user.name",label:"操作人",width:"100"}})],1),t("div",{staticClass:"block"},[t("el-pagination",{attrs:{"current-page":e.current_page,"page-sizes":[15,50,100],"page-size":e.per_page,layout:"total, sizes, prev, pager, next, jumper",total:e.Paginationdata.total},on:{"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1)],1)],1)},l=[],n=a(2900),i=a(6791),u={data(){return{options:[{value:"cost",label:"成本"},{value:"stock",label:"库存"},{value:"inventory",label:"库存盘点"},{value:"status",label:"状态"},{value:"set",label:"设置"}],options1:[],form:{targetField:"",userId:""},value1:"",loading:!0,tableData:[],Paginationdata:{},current_page:1,per_page:15,moudule:"goods"}},methods:{getList(){let e={userId:this.form.userId,target_field:this.form.targetField,moudule:this.moudule,target_id:this.$route.query.id,startTime:this.value1[0],endTime:this.value1[1],page:this.current_page,per_page:this.per_page};(0,i.m)(e).then((e=>{this.tableData=e.data.data,this.Paginationdata=e.data.meta})),this.loading=!1},handleSizeChange(e){this.per_page=e,this.query(1)},handleCurrentChange(e){this.current_page=e,this.query(this.current_page)},getUser(){(0,n.Lh)().then((e=>{this.options1=e.data.data}))},query(e){let t={userId:this.form.userId,target_field:this.form.targetField,page:e,per_page:this.per_page,moudule:this.moudule,target_id:this.$route.query.id,startTime:this.value1[0],endTime:this.value1[1]};const a=r(t);function r(e){const t={};for(const a in e)0!==e[a]&&!e[a]||""===e[a].toString().replace(/(^\s*)|(\s*$)/g,"")||(t[a]=e[a]);return t}(0,i.m)(a).then((e=>{this.tableData=e.data.data,this.Paginationdata=e.data.meta}))}},mounted(){this.getList(),this.getUser()}},o=u,s=a(1001),d=(0,s.Z)(o,r,l,!1,null,"891ad2ec",null),p=d.exports},6791:function(e,t,a){a.d(t,{m:function(){return l}});var r=a(8430);function l(e){return(0,r.Z)({url:"/api/logs",method:"get",params:e})}},2900:function(e,t,a){a.d(t,{A0:function(){return d},AX:function(){return o},Lh:function(){return n},RF:function(){return i},Uy:function(){return l},Vb:function(){return p},f7:function(){return u},nO:function(){return s}});var r=a(8430);function l(){return(0,r.Z)({url:"/api/roles",method:"get"})}function n(e){return(0,r.Z)({url:"/api/users",method:"get",params:e})}function i(e){return(0,r.Z)({url:"/api/users",method:"post",data:e})}function u(e){return(0,r.Z)({url:`/api/users/${e}`,method:"get"})}function o(e,t){return(0,r.Z)({url:`/api/users/${e}`,method:"patch",data:t})}function s(e){return(0,r.Z)({url:"/api/website_message",method:"get",params:e})}function d(e,t){return(0,r.Z)({url:`/api/website_message/${e}`,method:"patch",data:t})}function p(e){return(0,r.Z)({url:"/api/website_message/batchRead",method:"post",data:e})}}}]);
//# sourceMappingURL=688.c1783454.js.map //# sourceMappingURL=688.1ffe9e5d.js.map

1
public/dist/js/688.1ffe9e5d.js.map vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/dist/js/839.f5901bd7.js.map vendored Normal file

File diff suppressed because one or more lines are too long

2
public/dist/js/850.3d04d1d4.js vendored Normal file

File diff suppressed because one or more lines are too long

1
public/dist/js/850.3d04d1d4.js.map vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/dist/js/931.79e27d13.js.map vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/dist/js/967.0072dd64.js.map vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
public/dist/js/app.f1ce3c3c.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -60,3 +60,11 @@ export function messageRead(id, data) {
data data
}) })
} }
export function messageReadAll(data) {
return http({
url: `/api/website_message/batchRead`,
method: "post",
data: data
})
}

View File

@ -81,6 +81,9 @@
</div> </div>
<div class="bottom"> <div class="bottom">
<div>
<el-button v-if="curTopTab == '0'" icon="el-icon-finished" :disabled="msgList.length ? false : true" @click="markHasRead()">标记全部已读</el-button>
</div>
<el-pagination <el-pagination
:current-page="page" :current-page="page"
:page-sizes="[10, 20, 50, 100]" :page-sizes="[10, 20, 50, 100]"
@ -99,7 +102,7 @@
<script> <script>
import { removeToken } from "@/util/auth" import { removeToken } from "@/util/auth"
import { getMenu } from "../api/menu.js" import { getMenu } from "../api/menu.js"
import { websiteMessage, messageRead } from "../api/user.js" import { websiteMessage, messageRead, messageReadAll } from "../api/user.js"
export default { export default {
mounted() { mounted() {
@ -242,6 +245,17 @@ export default {
this.page = 1 this.page = 1
this.pageSize = e this.pageSize = e
this.getMsgList() this.getMsgList()
},
markHasRead() {
let ids = []
this.msgList.forEach(it => {
ids.push(it.id)
})
messageReadAll({ids: ids}).then((res) => {
this.page = 1
this.getMsgList()
this.getNoReadNum()
})
} }
} }
} }
@ -429,7 +443,7 @@ export default {
.bottom{ .bottom{
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: space-between;
padding: 20px 0; padding: 20px 0;
border-top: 1px solid #D7D7D7; border-top: 1px solid #D7D7D7;
} }

View File

@ -23,6 +23,19 @@
@change="handleSearch()"> @change="handleSearch()">
</el-date-picker> </el-date-picker>
</div> </div>
<div class="row">
<span>采购时间</span>
<el-date-picker
v-model="buyTime"
type="datetimerange"
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 340px"
@change="handleSearch()">
</el-date-picker>
</div>
<div class="row"> <div class="row">
<span>审核状态</span> <span>审核状态</span>
<el-select v-model="filter.status" placeholder="请选择" clearable @change="handleSearch()"> <el-select v-model="filter.status" placeholder="请选择" clearable @change="handleSearch()">
@ -35,8 +48,14 @@
</div> </div>
</div> </div>
</div> </div>
<el-card> <el-card>
<el-table v-loading="loading" :data="procureList" style="width: 100%" border> <div class="opaBox">
<el-button type="primary" :disabled="chooseList.length ? false : true" icon="el-icon-s-check" @click="batchExamine">批量审核</el-button>
</div>
<el-table v-loading="loading" :data="procureList" style="width: 100%" border ref="cesTable" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50" :selectable="selectable"></el-table-column>
<el-table-column prop="goods_sku.id" label="商品id" width="80" align="center" /> <el-table-column prop="goods_sku.id" label="商品id" width="80" align="center" />
<el-table-column prop="goods_sku.name" label="商品名称" /> <el-table-column prop="goods_sku.name" label="商品名称" />
<el-table-column prop="external_sku_id" label="商品编码" /> <el-table-column prop="external_sku_id" label="商品编码" />
@ -79,7 +98,7 @@
<el-dialog title="审核" :visible.sync="dialogVisible" width="500px"> <el-dialog title="审核" :visible.sync="dialogVisible" width="500px">
<el-form label-width="90px"> <el-form label-width="90px">
<el-form-item label="采购数量:"> <el-form-item label="采购数量:" v-if="opaType == 'normal'">
<el-input v-model="curInfo.num" type="number" clearable></el-input> <el-input v-model="curInfo.num" type="number" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="审核状态:"> <el-form-item label="审核状态:">
@ -109,12 +128,14 @@ export default {
pageSize: 15, pageSize: 15,
total: 0, total: 0,
procureList: [], procureList: [],
chooseList: [],
filter: { filter: {
title: '', title: '',
external_sku_id: '', external_sku_id: '',
status: '' status: ''
}, },
addTime: [], addTime: [],
buyTime: [],
curInfo: {}, curInfo: {},
commitloading: false, commitloading: false,
dialogVisible: false, dialogVisible: false,
@ -122,7 +143,8 @@ export default {
{ id: 0, name: '待审核' }, { id: 0, name: '待审核' },
{ id: 1, name: '审核通过' }, { id: 1, name: '审核通过' },
{ id: 2, name: '审核不通过' } { id: 2, name: '审核不通过' }
] ],
opaType: ''
} }
}, },
methods: { methods: {
@ -133,7 +155,9 @@ export default {
per_page: this.pageSize, per_page: this.pageSize,
...this.filter, ...this.filter,
start_time: this.addTime ? this.addTime[0] : '', start_time: this.addTime ? this.addTime[0] : '',
end_time: this.addTime ? this.addTime[1] : '' end_time: this.addTime ? this.addTime[1] : '',
date_start_time: this.buyTime ? this.buyTime[0] : '',
date_end_time: this.buyTime ? this.buyTime[1] : ''
} }
getPurchaseLog(params).then((res) => { getPurchaseLog(params).then((res) => {
this.procureList = res.data.data this.procureList = res.data.data
@ -158,6 +182,7 @@ export default {
}, },
toExamine(row) { toExamine(row) {
this.curInfo = JSON.parse(JSON.stringify(row)) this.curInfo = JSON.parse(JSON.stringify(row))
this.opaType = 'normal'
this.dialogVisible = true this.dialogVisible = true
}, },
commitCheck() { commitCheck() {
@ -167,13 +192,26 @@ export default {
} }
this.commitloading = true this.commitloading = true
let params = { let params = {
purchaseOrders: [{ purchaseOrders: []
}
if(this.opaType == 'normal') {
params.purchaseOrders = [{
id: this.curInfo.id, id: this.curInfo.id,
status: this.curInfo.status, status: this.curInfo.status,
num: this.curInfo.num num: this.curInfo.num
}] }]
} else {
for (let index = 0; index < this.chooseList.length; index++) {
params.purchaseOrders.push({
id: this.chooseList[index].id,
status: this.curInfo.status,
num: this.chooseList[index].num
})
}
} }
examinePurchase(params).then((res) => { examinePurchase(params).then((res) => {
this.chooseList = []
this.$refs.cesTable.clearSelection()
this.$message({ type: "success", message: "操作成功!" }) this.$message({ type: "success", message: "操作成功!" })
this.commitloading = false this.commitloading = false
this.dialogVisible = false this.dialogVisible = false
@ -181,6 +219,23 @@ export default {
}).catch(() => { }).catch(() => {
this.commitloading = false this.commitloading = false
}) })
},
batchExamine() {
this.curInfo = {
status: 0
}
this.opaType = 'batch'
this.dialogVisible = true
},
handleSelectionChange(val) {
this.chooseList = val
},
selectable(row, index) {
if (row.status == 1) {
return false;
} else {
return true;
}
} }
}, },
mounted() { mounted() {
@ -226,4 +281,7 @@ export default {
cursor: pointer; cursor: pointer;
width: fit-content; width: fit-content;
} }
.opaBox{
margin-bottom: 15px;
}
</style> </style>

View File

@ -81,6 +81,8 @@ Route::middleware(['auth:api', 'check.permissions'])->group(function () {
Route::resource('supplier', 'Supplier\SuppliersController', ['only' => ['index', 'update', 'store','destroy']]); Route::resource('supplier', 'Supplier\SuppliersController', ['only' => ['index', 'update', 'store','destroy']]);
//站内信 //站内信
Route::resource('website_message', 'Message\WebsiteMessageController', ['only' => ['index', 'update']]); Route::resource('website_message', 'Message\WebsiteMessageController', ['only' => ['index', 'update']]);
Route::post('website_message/batchRead', [\App\Http\Controllers\Message\WebsiteMessageController::class, 'batchRead']);
//仓库管理-采购单 //仓库管理-采购单
Route::resource('supplier/purchase_record', 'Supplier\PurchaseRecordController',['only' => ['index', 'store','update']]); Route::resource('supplier/purchase_record', 'Supplier\PurchaseRecordController',['only' => ['index', 'store','update']]);
//报损单 //报损单