Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
罗超
confucius
Commits
2cee39fd
Commit
2cee39fd
authored
May 14, 2021
by
liudong1993
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
45931769
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
109 additions
and
59 deletions
+109
-59
quasar.conf.js
quasar.conf.js
+9
-4
App.vue
src/App.vue
+1
-1
socket.js
src/api/common/socket.js
+3
-1
permission.js
src/boot/permission.js
+1
-1
addSuppliesStockOut-from.vue
src/components/sale/addSuppliesStockOut-from.vue
+6
-10
editOrder-form.vue
src/components/sale/editOrder-form.vue
+1
-1
schedul-form.vue
src/components/schedul/schedul-form.vue
+4
-4
schedul-head.vue
src/components/schedul/schedul-head.vue
+2
-2
makeup.vue
src/pages/course/makeup.vue
+28
-9
SuppliesStockOutApplyForMan.vue
src/pages/sale/SuppliesStockOutApplyForMan.vue
+48
-21
studentList.vue
src/pages/sale/studentList.vue
+6
-5
No files found.
quasar.conf.js
View file @
2cee39fd
...
...
@@ -49,13 +49,18 @@ module.exports = function (ctx) {
env
:
ctx
.
dev
?
{
//API: 'http://192.168.1.36:8300/api'
API
:
'https://localhost:5001/api'
,
//API: 'http://192.168.20.9:8085/api',
// API: 'https://localhost:5001/api',
// API: 'http://192.168.20.24:8300/api',
// API: 'http://testeduapi.oytour.com/api',
API
:
'http://192.168.20.9:8085/api'
,
// API: 'http://192.168.20.17:8017/api',
// API: 'http://eduapi.oytour.com/api'
API_ZC
:
'http://192.168.20.9:8087/api'
API_ZC
:
'http://192.168.20.9:8087/api'
,
API_SK
:
'ws:192.168.20.214:'
}
:
{
API
:
'http://eduapi.oytour.com/api'
,
API_ZC
:
'http://propertyedu.oytour.com/api'
API_ZC
:
'http://propertyedu.oytour.com/api'
,
API_SK
:
'ws://47.96.23.199:'
},
// transpile: false,
...
...
src/App.vue
View file @
2cee39fd
...
...
@@ -12,7 +12,7 @@ export default {
<
style
>
@import
url('~assets/css/font.css')
;
@import
url('//at.alicdn.com/t/font_2077629_
d6aa14tmbq
.css')
;
@import
url('//at.alicdn.com/t/font_2077629_
56b72l69rc3
.css')
;
html
,
body
,
...
...
src/api/common/socket.js
View file @
2cee39fd
...
...
@@ -8,7 +8,9 @@ var serverPort = '10086';
*/
function
initWebSocket
()
{
//ws地址
var
wsuri
=
"ws://47.96.23.199:"
+
serverPort
;
//本地连214 线上连这个
// var wsuri = "ws://47.96.23.199:" + serverPort;
var
wsuri
=
process
.
env
.
API_SK
+
serverPort
;
websock
=
new
WebSocket
(
wsuri
);
websock
.
onmessage
=
function
(
e
)
{
websocketonmessage
(
e
);
...
...
src/boot/permission.js
View file @
2cee39fd
...
...
@@ -8,7 +8,7 @@ LoadingBar.setDefaults({
position
:
"bottom"
});
let
loadAsyncRouter
=
false
;
const
whiteList
=
[
"/login"
,
"/"
,
"/contractConfirm"
,
"
contractPay"
,
"contractView"
,
"
noticeView"
];
// 不重定向白名单
const
whiteList
=
[
"/login"
,
"/"
,
"/contractConfirm"
,
"
/contractPay"
,
"/contractView"
,
"/contractSign"
,
"/
noticeView"
];
// 不重定向白名单
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
localStorage
.
setItem
(
"routerBefore"
,
from
.
path
);
LoadingBar
.
start
();
...
...
src/components/sale/addSuppliesStockOut-from.vue
View file @
2cee39fd
...
...
@@ -629,13 +629,13 @@
this
.
hcItemList
.
push
(
item
);
});
if
(
this
.
model
.
Type
===
1
){
let
haocaidata
=
Array
.
from
(
new
Set
(
this
.
hccheckList
))
let
haocaidata
=
JSON
.
parse
(
JSON
.
stringify
(
Array
.
from
(
new
Set
(
this
.
hccheckList
))))
// haocaidata.forEach(item=>{
// item.Number=""
// })
this
.
dataList_class
[
this
.
chooseHcIndex
].
haocaiList
=
haocaidata
}
else
if
(
this
.
model
.
Type
===
2
){
this
.
dataList
=
Array
.
from
(
new
Set
(
this
.
hcItemList
))
this
.
dataList
=
JSON
.
parse
(
JSON
.
stringify
(
Array
.
from
(
new
Set
(
this
.
hcItemList
))
))
}
})
...
...
@@ -665,22 +665,18 @@
},
chukuNum_class
(
val
,
maxVal
,
index
,
rowIndex
){
if
(
val
>
maxVal
){
this
.
dataList_class
[
rowIndex
].
haocaiList
[
index
].
Number
=
maxVal
console
.
log
(
"大于"
,
this
.
dataList_class
[
rowIndex
].
haocaiList
[
index
].
Number
)
}
else
if
(
val
<
0
||
val
==
undefined
||
val
==
null
){
console
.
log
(
"小于"
)
this
.
dataList_class
[
rowIndex
].
haocaiList
[
index
].
Number
=
0
this
.
dataList_class
[
rowIndex
].
haocaiList
[
index
].
Number
=
maxVal
this
.
dataList_class
[
rowIndex
-
1
].
haocaiList
[
index
].
Number
=
maxVal
}
else
if
(
val
<
0
||
val
==
undefined
||
val
==
null
){
this
.
dataList_class
[
rowIndex
].
haocaiList
[
index
].
Number
=
0
}
},
chukuNum
(
val
,
maxVal
,
index
){
if
(
val
>
maxVal
){
this
.
dataList
[
index
].
Number
=
maxVal
}
else
if
(
val
<
0
||
val
==
undefined
||
val
==
null
){
this
.
dataList
[
index
].
Number
=
0
}
},
},
};
...
...
src/components/sale/editOrder-form.vue
View file @
2cee39fd
...
...
@@ -55,7 +55,7 @@
</template>
<q-input
filled
stack-label
:dense=
"false"
v-model=
"OrderMsg.SaleRemark"
style=
"margin-top: 20px"
type=
"textarea"
class=
"col-12"
label=
"备注"
/>
<div
style=
"margin:30px 10px
0
0;"
>
<div
style=
"margin:30px 10px
70px
0;"
>
<q-btn
class=
"q-mr-md"
label=
"取消"
@
click=
"closeEditOrder"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"保存"
@
click=
"saveOrderInfo()"
/>
</div>
...
...
src/components/schedul/schedul-form.vue
View file @
2cee39fd
...
...
@@ -29,7 +29,7 @@
<div
class=
"row wrap"
v-for=
"(item,index) in objOption.PlanDetails"
:key=
"index"
>
<div
class=
"col-6"
>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"Name"
v-model=
"item.Shift"
:options=
"batchList"
label=
"班次"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
:disable=
"item.
Duty
Status!=0"
>
label=
"班次"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
:disable=
"item.Status!=0"
>
<
template
v-slot:option=
"{ itemProps, itemEvents, opt, selected, toggleOption }"
>
<q-item
v-bind=
"itemProps"
v-on=
"itemEvents"
>
<q-item-section>
...
...
@@ -41,9 +41,9 @@
</div>
<div
class=
"col-6"
style=
"position:relative;"
>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"EmployeeName"
v-model=
"item.DutyMan"
:options=
"EmployeeList"
label=
"值班人员"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
:disable=
"item.
Duty
Status!=0"
/>
:options=
"EmployeeList"
label=
"值班人员"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
:disable=
"item.Status!=0"
/>
<q-btn
style=
"position:absolute;right:-5px;top:20px;"
size=
"6px"
@
click=
"delStepPlan(index)"
round
color=
"red"
icon=
"iconfont icon-guanbi1"
v-if=
"item.
Duty
Status==0"
/>
color=
"red"
icon=
"iconfont icon-guanbi1"
v-if=
"item.Status==0"
/>
</div>
</div>
</q-card-section>
...
...
@@ -173,7 +173,7 @@
PlanId
:
0
,
Shift
:
0
,
DutyMan
:
0
,
Duty
Status
:
0
,
Status
:
0
,
}
this
.
objOption
.
PlanDetails
.
push
(
obj
);
},
...
...
src/components/schedul/schedul-head.vue
View file @
2cee39fd
...
...
@@ -79,7 +79,7 @@
<span
style=
"color:red"
>
{{
dataList
.
CheckLateTimeStr
}}
</span>
</
template
>
<
template
v-else
>
<span
style=
"color:green"
>
[正常]
</span>
<span
style=
"color:green"
>
{{
dataList
.
CheckLateTimeStr
}}
</span>
</
template
>
</span>
</td>
...
...
@@ -89,7 +89,7 @@
<span
style=
"color:red"
>
{{
dataList
.
FinishLateTimeStr
}}
</span>
</
template
>
<
template
v-else
>
<span
style=
"color:green"
>
[正常]
</span>
<span
style=
"color:green"
>
{{
dataList
.
FinishLateTimeStr
}}
</span>
</
template
>
</td>
</tr>
...
...
src/pages/course/makeup.vue
View file @
2cee39fd
<
style
>
.makeup
.el-input__inner
{
border
:
none
!important
;
background
:
transparent
!important
;
}
</
style
>
<
template
>
<div
class=
"page-body"
>
<div
class=
"page-body
makeup
"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
...
...
@@ -35,8 +42,9 @@
</div>
</div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table sticky-right-column-table"
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<
template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
>
补课管理
</div>
<q-space
/>
...
...
@@ -60,18 +68,18 @@
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"处理
"
@
click=
"isShowEdit=true,getClickItem(props.row)"
>
<q-btn
v-if=
"props.row.MakeUpStatus==3"
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400
"
label=
"处理"
@
click=
"isShowEdit=true,getClickItem(props.row)"
>
<q-popup-proxy>
<q-banner
v-if=
"isShowEdit"
>
<div
class=
"calenderDialog"
>
<div
style=
"margin:10px 0 15px 0;"
>
设置处理状态
</div>
<q-select
standout=
"bg-primary text-white"
option-value=
"Id"
option-label=
"Name"
v-model=
"statusMsg.MakeUpStatus"
:options=
"statusList"
emit-value
map-options
label=
"班级状态"
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
label=
"取消"
flat
color=
"grey-10"
@
click=
"isShowEdit=false"
<q-card-actions
align=
"right"
class=
"bg-white"
style=
"margin-top:20px;"
>
<q-btn
label=
"取消"
flat
color=
"grey-10"
size=
"sm"
@
click=
"isShowEdit=false"
style=
"font-weight:400 !important"
/>
<q-btn
label=
"确认"
color=
"accent q-px-md"
style=
"font-weight:400 !important"
<q-btn
label=
"确认"
color=
"accent q-px-md"
s
ize=
"sm"
s
tyle=
"font-weight:400 !important"
@
click=
"setCheckStatus()"
/>
</q-card-actions>
</div>
...
...
@@ -123,13 +131,24 @@
field
:
'TeacherName'
,
align
:
'left'
},
{
name
:
'RoomName'
,
label
:
'教室名称'
,
field
:
'RoomName'
,
align
:
'left'
},
{
name
:
'ClassDate'
,
label
:
'日期'
,
field
:
'ClassDate'
,
align
:
'left'
},
{
name
:
'GuestStateStr'
,
label
:
'学员状态'
,
field
:
'GuestStateStr'
,
align
:
'left'
},
{
name
:
'MakeUpStatusStr'
,
label
:
'状态'
,
...
...
src/pages/sale/SuppliesStockOutApplyForMan.vue
View file @
2cee39fd
...
...
@@ -181,42 +181,43 @@
</
template
>
<
template
v-slot:body-cell-ClassName=
"props"
>
<q-td
:props=
"props"
>
<div
v-for=
"item in props.row.DetailList"
:key=
"item.Id"
>
<div
v-for=
"item in props.row.DetailList"
:key=
"item.Id"
class=
"td_height"
>
{{
item
.
ClassName
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-CourseName=
"props"
>
<q-td
:props=
"props"
>
<div
v-for=
"item in props.row.DetailList"
:key=
"item.Id"
>
<div
v-for=
"item in props.row.DetailList"
:key=
"item.Id"
class=
"td_height"
>
{{
item
.
CourseName
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-SuppliesName=
"props"
>
<q-td
:props=
"props"
>
<div
v-for=
"item in props.row.DetailList"
:key=
"item.Id"
>
<div
v-for=
"item in props.row.DetailList"
:key=
"item.Id"
class=
"td_height"
>
{{
item
.
SuppliesName
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-BrandName=
"props"
>
<q-td
:props=
"props"
>
<div
v-for=
"item in props.row.DetailList"
:key=
"item.Id"
>
<div
v-for=
"item in props.row.DetailList"
:key=
"item.Id"
class=
"td_height"
>
{{
item
.
BrandName
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-Number=
"props"
>
<q-td
:props=
"props"
>
<div
v-for=
"item in props.row.DetailList"
:key=
"item.Id"
>
<div
v-for=
"item in props.row.DetailList"
:key=
"item.Id"
class=
"td_height"
>
{{
item
.
Number
}}
</div>
</q-td>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<q-btn
color=
"primary"
size=
"11px"
@
click=
"goDetail(props.row)"
>
查看详情
</q-btn>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
@
click=
"goDetail(props.row)"
>
详情
</q-btn>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"color:#f00"
@
click=
"quxiao(props.row)"
v-if=
"props.row.CreateBy==loginId&&props.row.AuditStatus!=2"
>
取消
</q-btn>
</q-td>
</
template
>
<
template
v-slot:bottom
>
...
...
@@ -231,24 +232,13 @@
</div>
</template>
<
script
>
import
edittransorderForm
from
'../../components/sale/edittransorder-form'
import
viewquotationForm
from
'../../components/sale/viewquotation-form'
import
SuppliesStockOutFrom
from
'../../components/sale/addSuppliesStockOut-from'
//员工
import
{
queryEmployee
}
from
'../../api/users/user'
import
{
mapState
}
from
"vuex"
;
import
{
GetSuppliesStockOutApplyForPageList
}
from
'../../api/sale/StockOutApplyFor'
import
{
GetSuppliesStockOutApplyForPageList
,
SetSuppliesStockOutApplyForState
}
from
'../../api/sale/StockOutApplyFor'
export
default
{
meta
:
{
title
:
"出库管理"
},
components
:
{
edittransorderForm
,
viewquotationForm
,
SuppliesStockOutFrom
},
data
()
{
...
...
@@ -365,15 +355,16 @@
align
:
"left"
,
}
],
showaddStockOut
:
false
showaddStockOut
:
false
,
loginId
:
0
,
}
},
mounted
()
{
this
.
getSuppliesStockOutApplyForPageList
();
this
.
loginId
=
JSON
.
parse
(
localStorage
.
getItem
(
'loginUserInfo'
)).
data
.
Id
},
methods
:
{
//跳转详情
goDetail
(
item
)
{
this
.
$router
.
push
({
...
...
@@ -425,12 +416,48 @@
},
closePop
(){
this
.
showaddStockOut
=
false
}
},
//取消
quxiao
(
row
){
console
.
log
(
row
)
this
.
$q
.
dialog
({
title
:
'提示信息'
,
message
:
'是否确定取消?'
,
cancel
:
true
,
persistent
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
,
}).
onOk
(()
=>
{
let
obj
=
{
ApplyForId
:
row
.
Id
,
Type
:
1
,
Remark
:
""
}
SetSuppliesStockOutApplyForState
(
obj
).
then
(
res
=>
{
if
(
res
.
data
.
resultCode
===
1
){
this
.
Success
(
res
.
data
.
message
)
this
.
getSuppliesStockOutApplyForPageList
();
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
})
}).
onCancel
(()
=>
{
});
},
}
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
<
style
>
.td_height
{
height
:
40px
;
line-height
:
40px
;
}
</
style
>
src/pages/sale/studentList.vue
View file @
2cee39fd
...
...
@@ -74,9 +74,9 @@
v-model=
"addMsg.GuestSource"
:options=
"OFList"
emit-value
map-options
label=
"客人来源"
/>
<q-input
clearable
filled
class=
"col-6 q-pb-lg q-pr-lg"
v-model=
"addMsg.ContactAddress"
label=
"现居住地址"
/>
<div
class=
"col-6 q-pr-lg q-pb-lg"
>
<q-uploader
style=
"
display: inline-block;height: 150px;max-width: 100%; background-repeat:no-repeat
"
<q-uploader
style=
"
min-height:268px;max-width: 300px; background-repeat:no-repeat;background-position: 50% 50%;background-size: cover;
"
:style=
"{'background-image':'url(' + addMsg.StuIcon + ')'}"
max-files=
"1"
hide-upload-btn
@
rejected=
"onRejected"
label=
"
教师
头像"
:max-file-size=
"5*1024*1024"
accept=
".jpg, image/*"
auto-upload
@
rejected=
"onRejected"
label=
"
学生
头像"
:max-file-size=
"5*1024*1024"
accept=
".jpg, image/*"
auto-upload
:factory=
"uploadFile"
no-thumbnails
>
</q-uploader>
</div>
...
...
@@ -114,7 +114,7 @@
<div
class=
"col-6 q-pr-lg q-pb-lg"
>
<q-uploader
style=
"display: inline-block;height: 150px;max-width: 100%; background-repeat:no-repeat"
:style=
"{'background-image':'url(' + addMsg.StuIcon + ')'}"
max-files=
"1"
hide-upload-btn
@
rejected=
"onRejected"
label=
"
教师
头像"
:max-file-size=
"5*1024*1024"
accept=
".jpg, image/*"
auto-upload
@
rejected=
"onRejected"
label=
"
学生
头像"
:max-file-size=
"5*1024*1024"
accept=
".jpg, image/*"
auto-upload
:factory=
"uploadFile"
no-thumbnails
>
</q-uploader>
</div>
...
...
@@ -505,8 +505,9 @@
this
.
addMsg
.
VolunteerMajor
=
item
.
VolunteerMajor
;
this
.
addMsg
.
Price
=
item
.
Price
;
this
.
addMsg
.
StudyRemark
=
item
.
StudyRemark
;
this
.
addMsg
.
BirthDate
=
item
.
BirthDate
;
if
(
item
.
BirthDate
){
this
.
addMsg
.
BirthDate
=
item
.
BirthDate
;
}
this
.
addMsg
.
TotalHours
=
item
.
TotalHours
;
this
.
addMsg
.
StuIcon
=
item
.
StuIcon
;
this
.
persistent
=
true
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment