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
42bb9997
Commit
42bb9997
authored
Apr 21, 2022
by
liudong1993
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
5b6d4fd0
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1646 additions
and
1379 deletions
+1646
-1379
quasar.conf.js
quasar.conf.js
+225
-225
index.js
src/api/studentmsg/index.js
+0
-1
student-from.vue
src/components/activity/student-from.vue
+200
-0
eventsCalendar.vue
src/components/stuMan/eventsCalendar.vue
+12
-2
index.vue
src/components/work/index.vue
+1
-1
Work.vue
src/pages/Work.vue
+225
-178
QuesActivityList.vue
src/pages/activity/QuesActivityList.vue
+11
-3
configurationstudentsList.vue
src/pages/activity/configurationstudentsList.vue
+138
-188
questionnaireList.vue
src/pages/activity/questionnaireList.vue
+175
-186
performanceCommission.vue
src/pages/financial/reportform/performanceCommission.vue
+655
-589
ReturnperiodsList.vue
src/pages/financial/returnPassbook/ReturnperiodsList.vue
+4
-6
No files found.
quasar.conf.js
View file @
42bb9997
...
...
@@ -7,257 +7,257 @@
// https://quasar.dev/quasar-cli/quasar-conf-js
/* eslint-env node */
module
.
exports
=
function
(
ctx
)
{
return
{
// https://quasar.dev/quasar-cli/supporting-ts
supportTS
:
false
,
// https://quasar.dev/quasar-cli/prefetch-feature
// preFetch: true,
module
.
exports
=
function
(
ctx
)
{
return
{
// https://quasar.dev/quasar-cli/supporting-ts
supportTS
:
false
,
// https://quasar.dev/quasar-cli/prefetch-feature
// preFetch: true,
// app boot file (/src/boot)
// --> boot files are part of "main.js"
// https://quasar.dev/quasar-cli/boot-files
boot
:
[
'i18n'
,
'axios'
,
'permission'
,
'inline-svg'
],
// app boot file (/src/boot)
// --> boot files are part of "main.js"
// https://quasar.dev/quasar-cli/boot-files
boot
:
[
'i18n'
,
'axios'
,
'permission'
,
'inline-svg'
],
// https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
css
:
[
'app.sass'
],
// https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
css
:
[
'app.sass'
],
// https://github.com/quasarframework/quasar/tree/dev/extras
extras
:
[
// 'ionicons-v4',
'mdi-v5'
,
// 'fontawesome-v5',
// 'eva-icons',
// 'themify',
// 'line-awesome',
// 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
'roboto-font'
,
// optional, you are not bound to it
'material-icons'
// optional, you are not bound to it
],
// https://github.com/quasarframework/quasar/tree/dev/extras
extras
:
[
// 'ionicons-v4',
'mdi-v5'
,
// 'fontawesome-v5',
// 'eva-icons',
// 'themify',
// 'line-awesome',
// 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
'roboto-font'
,
// optional, you are not bound to it
'material-icons'
// optional, you are not bound to it
],
// Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
build
:
{
vueRouterMode
:
'hash'
,
// available values: 'hash', 'history'
// Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
build
:
{
vueRouterMode
:
'hash'
,
// available values: 'hash', 'history'
env
:
ctx
.
dev
?
{
API
:
'http://localhost:5001/api'
,
//
API: 'http://192.168.10.46:8300/api',
// API: 'https://eduapi.oytour.com/api',
API_ZC
:
'http://192.168.10.17:8087/api'
,
API_SK
:
'ws:192.168.10.214:'
,
API_SIG
:
'http://localhost:5001/messagecenter'
}
:
{
API
:
'https://eduapi.oytour.com/api'
,
API_ZC
:
'http://propertyedu.oytour.com/api'
,
API_SK
:
'ws://47.96.23.199:'
,
API_SK_WSS
:
'wss://sk.kookaku.com'
,
API_SIG
:
'http://eduapi.oytour.com/messagecenter'
},
// transpile: false,
env
:
ctx
.
dev
?
{
//
API: 'http://localhost:5001/api',
API
:
'http://192.168.10.46:8300/api'
,
// API: 'https://eduapi.oytour.com/api',
API_ZC
:
'http://192.168.10.17:8087/api'
,
API_SK
:
'ws:192.168.10.214:'
,
API_SIG
:
'http://localhost:5001/messagecenter'
}
:
{
API
:
'https://eduapi.oytour.com/api'
,
API_ZC
:
'http://propertyedu.oytour.com/api'
,
API_SK
:
'ws://47.96.23.199:'
,
API_SK_WSS
:
'wss://sk.kookaku.com'
,
API_SIG
:
'http://eduapi.oytour.com/messagecenter'
},
// transpile: false,
// Add dependencies for transpiling with Babel (Array of string/regex)
// (from node_modules, which are by default not transpiled).
// Applies only if "transpile" is set to true.
// transpileDependencies: [],
// Add dependencies for transpiling with Babel (Array of string/regex)
// (from node_modules, which are by default not transpiled).
// Applies only if "transpile" is set to true.
// transpileDependencies: [],
// rtl: false, // https://quasar.dev/options/rtl-support
// preloadChunks: true,
// showProgress: false,
// gzip: true,
// analyze: true,
// rtl: false, // https://quasar.dev/options/rtl-support
// preloadChunks: true,
// showProgress: false,
// gzip: true,
// analyze: true,
// Options below are automatically set depending on the env, set them if you want to override
// extractCSS: false,
// Options below are automatically set depending on the env, set them if you want to override
// extractCSS: false,
// https://quasar.dev/quasar-cli/handling-webpack
extendWebpack
(
cfg
)
{
cfg
.
module
.
rules
.
push
({
enforce
:
'pre'
,
test
:
/
\.
swf$/
,
loader
:
'url-loader'
})
}
},
// Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-devServer
devServer
:
{
https
:
false
,
port
:
8181
,
open
:
true
// opens browser window automatically
},
// https://quasar.dev/quasar-cli/handling-webpack
extendWebpack
(
cfg
)
{
cfg
.
module
.
rules
.
push
({
enforce
:
'pre'
,
test
:
/
\.
swf$/
,
loader
:
'url-loader'
})
}
},
// https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
framework
:
{
iconSet
:
'material-icons'
,
// Quasar icon set
lang
:
'zh-hans'
,
// Quasar language pack
config
:
{},
// Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-devServer
devServer
:
{
https
:
false
,
port
:
8181
,
open
:
true
// opens browser window automatically
},
// Possible values for "importStrategy":
// * 'auto' - (DEFAULT) Auto-import needed Quasar components & directives
// * 'all' - Manually specify what to import
importStrategy
:
'auto'
,
// https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
framework
:
{
iconSet
:
'material-icons'
,
// Quasar icon set
lang
:
'zh-hans'
,
// Quasar language pack
config
:
{},
// For special cases outside of where "auto" importStrategy can have an impact
// (like functional components as one of the examples),
// you can manually specify Quasar components/directives to be available everywhere:
//
components
:
[
'QLayout'
,
'QHeader'
,
'QDrawer'
,
'QPageContainer'
,
'QPage'
,
'QToolbar'
,
'QToolbarTitle'
,
'QBtn'
,
'QIcon'
,
'QList'
,
'QItem'
,
'QItemSection'
,
'QItemLabel'
,
'QTabs'
,
'QRouteTab'
,
'QAvatar'
,
'QBtnDropdown'
,
'QFooter'
,
'QMenu'
,
'QCarousel'
,
'QCarouselControl'
,
'QCarouselSlide'
,
'QInput'
,
'QDate'
,
'QPopupProxy'
,
'QBanner'
,
'QSeparator'
,
'QChip'
,
'QTab'
,
'QSelect'
,
'QVideo'
,
'QImg'
,
'QResizeObserver'
,
'QMarkupTable'
,
'QForm'
,
'QTable'
,
'QTh'
,
'QTr'
,
'QTd'
,
'QCard'
,
'QCheckbox'
,
'QTree'
,
'QOptionGroup'
,
'QRadio'
,
'QBtnGroup'
],
directives
:
[
'ClosePopup'
],
// Possible values for "importStrategy":
// * 'auto' - (DEFAULT) Auto-import needed Quasar components & directives
// * 'all' - Manually specify what to import
importStrategy
:
'auto'
,
// Quasar plugins
plugins
:
[
'Meta'
,
'Notify'
,
'Dialog'
,
'LoadingBar'
]
},
// For special cases outside of where "auto" importStrategy can have an impact
// (like functional components as one of the examples),
// you can manually specify Quasar components/directives to be available everywhere:
//
components
:
[
'QLayout'
,
'QHeader'
,
'QDrawer'
,
'QPageContainer'
,
'QPage'
,
'QToolbar'
,
'QToolbarTitle'
,
'QBtn'
,
'QIcon'
,
'QList'
,
'QItem'
,
'QItemSection'
,
'QItemLabel'
,
'QTabs'
,
'QRouteTab'
,
'QAvatar'
,
'QBtnDropdown'
,
'QFooter'
,
'QMenu'
,
'QCarousel'
,
'QCarouselControl'
,
'QCarouselSlide'
,
'QInput'
,
'QDate'
,
'QPopupProxy'
,
'QBanner'
,
'QSeparator'
,
'QChip'
,
'QTab'
,
'QSelect'
,
'QVideo'
,
'QImg'
,
'QResizeObserver'
,
'QMarkupTable'
,
'QForm'
,
'QTable'
,
'QTh'
,
'QTr'
,
'QTd'
,
'QCard'
,
'QCheckbox'
,
'QTree'
,
'QOptionGroup'
,
'QRadio'
,
'QBtnGroup'
],
directives
:
[
'ClosePopup'
],
// animations: 'all', // --- includes all animations
// https://quasar.dev/options/animations
animations
:
[],
// Quasar plugins
plugins
:
[
'Meta'
,
'Notify'
,
'Dialog'
,
'LoadingBar'
]
},
// https://quasar.dev/quasar-cli/developing-ssr/configuring-ssr
ssr
:
{
pwa
:
false
},
// animations: 'all', // --- includes all animations
// https://quasar.dev/options/animations
animations
:
[],
// https://quasar.dev/quasar-cli/developing-pwa/configuring-pwa
pwa
:
{
workboxPluginMode
:
'GenerateSW'
,
// 'GenerateSW' or 'InjectManifest'
workboxOptions
:
{},
// only for GenerateSW
manifest
:
{
name
:
'com.viitto.confuius'
,
short_name
:
'com.viitto.confuius'
,
description
:
'jiahe japen school system'
,
display
:
'standalone'
,
orientation
:
'portrait'
,
background_color
:
'#ffffff'
,
theme_color
:
'#027be3'
,
icons
:
[{
src
:
'icons/icon-128x128.png'
,
sizes
:
'128x128'
,
type
:
'image/png'
},
{
src
:
'icons/icon-192x192.png'
,
sizes
:
'192x192'
,
type
:
'image/png'
},
{
src
:
'icons/icon-256x256.png'
,
sizes
:
'256x256'
,
type
:
'image/png'
// https://quasar.dev/quasar-cli/developing-ssr/configuring-ssr
ssr
:
{
pwa
:
false
},
{
src
:
'icons/icon-384x384.png'
,
sizes
:
'384x384'
,
type
:
'image/png'
// https://quasar.dev/quasar-cli/developing-pwa/configuring-pwa
pwa
:
{
workboxPluginMode
:
'GenerateSW'
,
// 'GenerateSW' or 'InjectManifest'
workboxOptions
:
{},
// only for GenerateSW
manifest
:
{
name
:
'com.viitto.confuius'
,
short_name
:
'com.viitto.confuius'
,
description
:
'jiahe japen school system'
,
display
:
'standalone'
,
orientation
:
'portrait'
,
background_color
:
'#ffffff'
,
theme_color
:
'#027be3'
,
icons
:
[{
src
:
'icons/icon-128x128.png'
,
sizes
:
'128x128'
,
type
:
'image/png'
},
{
src
:
'icons/icon-192x192.png'
,
sizes
:
'192x192'
,
type
:
'image/png'
},
{
src
:
'icons/icon-256x256.png'
,
sizes
:
'256x256'
,
type
:
'image/png'
},
{
src
:
'icons/icon-384x384.png'
,
sizes
:
'384x384'
,
type
:
'image/png'
},
{
src
:
'icons/icon-512x512.png'
,
sizes
:
'512x512'
,
type
:
'image/png'
}
]
}
},
{
src
:
'icons/icon-512x512.png'
,
sizes
:
'512x512'
,
type
:
'image/png'
}
]
}
},
// Full list of options: https://quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova
cordova
:
{
// noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
},
// Full list of options: https://quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova
cordova
:
{
// noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
},
// Full list of options: https://quasar.dev/quasar-cli/developing-capacitor-apps/configuring-capacitor
capacitor
:
{
hideSplashscreen
:
true
},
// Full list of options: https://quasar.dev/quasar-cli/developing-capacitor-apps/configuring-capacitor
capacitor
:
{
hideSplashscreen
:
true
},
// Full list of options: https://quasar.dev/quasar-cli/developing-electron-apps/configuring-electron
electron
:
{
bundler
:
'packager'
,
// 'packager' or 'builder'
// Full list of options: https://quasar.dev/quasar-cli/developing-electron-apps/configuring-electron
electron
:
{
bundler
:
'packager'
,
// 'packager' or 'builder'
packager
:
{
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
packager
:
{
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
// OS X / Mac App Store
// appBundleId: '',
// appCategoryType: '',
// osxSign: '',
// protocol: 'myapp://path',
// OS X / Mac App Store
// appBundleId: '',
// appCategoryType: '',
// osxSign: '',
// protocol: 'myapp://path',
// Windows only
// win32metadata: { ... }
},
// Windows only
// win32metadata: { ... }
},
builder
:
{
// https://www.electron.build/configuration/configuration
builder
:
{
// https://www.electron.build/configuration/configuration
appId
:
'confucius'
},
appId
:
'confucius'
},
// More info: https://quasar.dev/quasar-cli/developing-electron-apps/node-integration
nodeIntegration
:
true
,
// More info: https://quasar.dev/quasar-cli/developing-electron-apps/node-integration
nodeIntegration
:
true
,
extendWebpack
(
/* cfg */
)
{
// do something with Electron main process Webpack cfg
// chainWebpack also available besides this extendWebpack
}
extendWebpack
(
/* cfg */
)
{
// do something with Electron main process Webpack cfg
// chainWebpack also available besides this extendWebpack
}
}
}
}
}
}
\ No newline at end of file
src/api/studentmsg/index.js
View file @
42bb9997
import
request
from
'../../utils/request'
import
request_zc
from
'../../utils/request_zc'
/*
...
...
src/components/activity/student-from.vue
0 → 100644
View file @
42bb9997
<
style
scoped
>
.wenjuan_Shuru
{
position
:
relative
;
}
.SurverDel
{
position
:
absolute
;
right
:
-5px
;
top
:
-5px
;
}
</
style
>
<
template
>
<q-dialog
v-model=
"persistent"
content-class=
"bg-grey-1"
persistent
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"width: 800px;max-width:800px;"
>
<q-card-section>
<div
class=
"text-h6"
>
{{
addMsg
.
ID
==
0
?
'新增学员'
:
'修改学员'
}}
</div>
</q-card-section>
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<div
class=
"row wrap"
>
<!--
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"Name"
v-model=
"addMsg.SurveyType"
:options=
"platList"
label=
"客户类型"
ref=
"SurveyType"
@
input=
"getPlat()"
:rules=
"[val => !!val || '请选择类型']"
class=
"col-12 q-pb-lg"
emit-value
map-options
/>
-->
<q-input
filled
v-model=
"addMsg.Sort"
class=
"col-12 q-pb-lg"
ref=
"Sort"
label=
"学员编号"
:rules=
"[val => !!val || '请填写排序']"
></q-input>
<div
class=
"col-12 q-pb-lg"
>
<q-input
filled
v-model=
"addMsg.StartTime"
mask=
"####-##-## ##:##:##"
ref=
"SignStartTime"
label=
"开始时间"
:rules=
"[val => !!val || '请选择开始时间']"
>
<template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<div
class=
"q-gutter-md row items-start"
>
<q-date
v-model=
"addMsg.StartTime"
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"date"
/>
<q-time
v-model=
"addMsg.StartTime"
format24h
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"time"
/>
</div>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</div>
<div
class=
"col-12 q-pb-lg"
>
<q-input
filled
v-model=
"addMsg.EndTime"
mask=
"####-##-## ##:##:##"
ref=
"SignEndTime"
label=
"结束时间"
:rules=
"[val => !!val || '请选择结束时间']"
>
<
template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<div
class=
"q-gutter-md row items-start"
>
<q-date
v-model=
"addMsg.EndTime"
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"endDate"
/>
<q-time
v-model=
"addMsg.EndTime"
format24h
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"endTime"
/>
</div>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</div>
</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"
/>
<q-btn
label=
"立即提交"
color=
"accent q-px-md"
style=
"font-weight:400 !important"
:loading=
"saveLoading"
@
click=
"saveActive"
/>
</q-card-actions>
</q-card>
</q-dialog>
</template>
<
script
>
import
{
setActivitySurveyGuest
,
getActivitySurveyGuestModule
}
from
'../../api/studentmsg/index'
export
default
{
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
},
ID
:
{
type
:
String
,
default
:
null
}
},
data
()
{
return
{
persistent
:
true
,
addMsg
:
{
Id
:
0
,
//新增传0
GuestType
:
2
,
//客户类型(1-小程序用户,2-学员用户)
GuestId
:
2644
,
//学员编号
StartTime
:
"2022-04-20 00:00:00"
,
//开始时间
EndTime
:
"2022-04-25 18:00:00"
,
//结束时间
SurveyId
:
0
//意见调查表编号
},
platList
:
[],
dateList
:
[],
FormTypeList
:
[],
saveLoading
:
false
};
},
mounted
()
{
this
.
initObj
();
},
methods
:
{
// 选择报名开始时间
date
(
val
)
{
this
.
addMsg
.
SignStartTime
=
val
;
},
time
(
val
)
{
this
.
addMsg
.
SignStartTime
=
val
;
},
// 选择报名结束时间
endDate
(
val
)
{
this
.
addMsg
.
SignEndTime
=
val
;
},
endTime
(
val
)
{
this
.
addMsg
.
SignEndTime
=
val
;
},
//初始化表单
initObj
()
{
this
.
addMsg
.
SurveyId
=
this
.
ID
if
(
this
.
saveObj
&&
this
.
saveObj
.
ID
>
0
)
{
getActivitySurveyGuestModule
({
Id
:
saveObj
.
ID
}).
then
(
res
=>
{
this
.
addMsg
=
res
.
data
.
data
;
console
.
log
(
"11111"
,
res
);
})
}
else
{
this
.
addMsg
.
Id
=
0
;
// this.addMsg.GuestId = 1;
// this.StartTime = '';
// this.EndTime = '';
}
},
//关闭弹窗
closeSaveForm
()
{
this
.
$emit
(
"close"
);
this
.
persistent
=
false
;
},
saveActive
()
{
setActivitySurveyGuest
(
this
.
addMsg
).
then
(
res
=>
{
if
(
res
.
data
.
Id
==
0
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据保存成功!'
,
position
:
'top'
})
this
.
$emit
(
'close'
);
this
.
$emit
(
'success'
);
}
else
{
this
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
res
.
data
.
message
})
}
})
}
}
};
</
script
>
\ No newline at end of file
src/components/stuMan/eventsCalendar.vue
View file @
42bb9997
...
...
@@ -287,9 +287,19 @@
<div>
<div
class=
"eventsCalendar_Form"
>
<div
style=
"text-align:right;margin:12px 20px 8px 0"
>
<el-date-picker
style=
"width:190px"
v-model=
"date"
type=
"month"
size=
"small"
value-format=
"yyyy-M-d"
@
change=
"getList()"
placeholder=
"选择日期"
>
<el-date-picker
style=
"width:190px"
v-model=
"date"
type=
"date"
:clearable=
"false"
value-format=
"yyyy-MM-d"
:picker-options=
"pickerOptions"
:editable=
"false"
placeholder=
"选择日期"
@
change=
"getList"
>
</el-date-picker>
</div>
<template>
<el-calendar
v-model=
"date"
id=
"calendar"
style=
"margin-bottom:40px;"
>
...
...
src/components/work/index.vue
View file @
42bb9997
...
...
@@ -127,7 +127,7 @@
</div> -->
<q-btn-group
outline
style=
"position: fixed;top:
7
5px;right:20px;z-index: 666666;"
style=
"position: fixed;top:
1
5px;right:20px;z-index: 666666;"
>
<q-btn
dense
...
...
src/pages/Work.vue
View file @
42bb9997
...
...
@@ -7,235 +7,282 @@
<el-tab-pane
:label=
"item.label"
:name=
"item.value"
:key=
"item.value"
v-for=
"(item, index) in options"
></el-tab-pane>
</el-tabs>
</div>
-->
<q-btn
flat
@
click=
"changeMenu(5)"
:color=
"chosenMenu==5?'primary':'blue-grey-14'"
:class=
"[chosenMenu==5?'text-weight-bold':'']"
label=
"工作台"
></q-btn>
<q-btn
@
click=
"changeMenu(1)"
flat
:color=
"chosenMenu==1?'primary':'blue-grey-14'"
:class=
"[chosenMenu==1?'text-weight-bold':'']"
label=
"OKR 工作区"
>
<q-menu
v-if=
"chosenMenu==1"
>
<q-btn
flat
@
click=
"changeMenu(6)"
:color=
"chosenMenu == 6 ? 'primary' : 'blue-grey-14'"
:class=
"[chosenMenu == 6 ? 'text-weight-bold' : '']"
label=
"活动日历"
></q-btn>
<q-btn
flat
@
click=
"changeMenu(5)"
:color=
"chosenMenu == 5 ? 'primary' : 'blue-grey-14'"
:class=
"[chosenMenu == 5 ? 'text-weight-bold' : '']"
label=
"工作台"
></q-btn>
<q-btn
@
click=
"changeMenu(1)"
flat
:color=
"chosenMenu == 1 ? 'primary' : 'blue-grey-14'"
:class=
"[chosenMenu == 1 ? 'text-weight-bold' : '']"
label=
"OKR 工作区"
>
<q-menu
v-if=
"chosenMenu == 1"
>
<q-list>
<q-item
clickable
@
click=
"okrMenu
=
1"
>
<q-item
clickable
@
click=
"okrMenu
=
1"
>
<q-item-section
q-item-section
avatar
>
<inline-svg
class=
"svg-icon svg-icon-secondary"
src=
"icons/svg/Text/Edit-text.svg"
></inline-svg>
<inline-svg
class=
"svg-icon svg-icon-secondary"
src=
"icons/svg/Text/Edit-text.svg"
></inline-svg>
</q-item-section>
<q-item-section>
OKR
</q-item-section>
</q-item>
<q-separator
/>
<q-item
clickable
@
click=
"okrMenu
=
2"
>
<q-item
clickable
@
click=
"okrMenu
=
2"
>
<q-item-section
q-item-section
avatar
>
<inline-svg
class=
"svg-icon svg-icon-secondary"
src=
"icons/svg/General/Visible.svg"
></inline-svg>
<inline-svg
class=
"svg-icon svg-icon-secondary"
src=
"icons/svg/General/Visible.svg"
></inline-svg>
</q-item-section>
<q-item-section>
对齐视图
</q-item-section>
</q-item>
<q-item
clickable
>
<q-item-section
q-item-section
avatar
>
<inline-svg
class=
"svg-icon svg-icon-secondary"
src=
"icons/svg/Shopping/Chart-pie.svg"
></inline-svg>
<inline-svg
class=
"svg-icon svg-icon-secondary"
src=
"icons/svg/Shopping/Chart-pie.svg"
></inline-svg>
</q-item-section>
<q-item-section>
数据看板
</q-item-section>
</q-item>
</q-list>
</q-menu>
</q-btn>
<!--
<q-btn
@
click=
"changeMenu(2)"
v-if=
"AccountType==2 || ispower==true"
flat
:color=
"chosenMenu==2?'primary':'blue-grey-14'"
:class=
"[chosenMenu==2?'text-weight-bold':'']"
label=
"备课管理"
>
<!--
<q-btn
@
click=
"changeMenu(2)"
v-if=
"AccountType==2 || ispower==true"
flat
:color=
"chosenMenu==2?'primary':'blue-grey-14'"
:class=
"[chosenMenu==2?'text-weight-bold':'']"
label=
"备课管理"
>
</q-btn>
-->
<q-btn
flat
@
click=
"changeMenu(3)"
:color=
"chosenMenu==3?'primary':'blue-grey-14'"
:class=
"[chosenMenu==3?'text-weight-bold':'']"
label=
"我的排班计划"
></q-btn>
<q-btn
flat
@
click=
"changeMenu(4)"
v-if=
"AccountType==2"
:color=
"chosenMenu==4?'primary':'blue-grey-14'"
:class=
"[chosenMenu==4?'text-weight-bold':'']"
label=
"我的上课计划"
></q-btn>
<q-btn
flat
@
click=
"changeMenu(6)"
:color=
"chosenMenu==6?'primary':'blue-grey-14'"
:class=
"[chosenMenu==6?'text-weight-bold':'']"
label=
"活动日历"
></q-btn>
<q-btn
flat
@
click=
"changeMenu(3)"
:color=
"chosenMenu == 3 ? 'primary' : 'blue-grey-14'"
:class=
"[chosenMenu == 3 ? 'text-weight-bold' : '']"
label=
"我的排班计划"
></q-btn>
<q-btn
flat
@
click=
"changeMenu(4)"
v-if=
"AccountType == 2"
:color=
"chosenMenu == 4 ? 'primary' : 'blue-grey-14'"
:class=
"[chosenMenu == 4 ? 'text-weight-bold' : '']"
label=
"我的上课计划"
></q-btn>
</div>
<div
class=
"bg-white col"
v-if=
"chosenMenu
==
6"
>
<div
class=
"bg-white col"
v-if=
"chosenMenu
==
6"
>
<eventsCalendar></eventsCalendar>
</div>
<div
class=
"bg-white col"
v-if=
"chosenMenu
==
5"
>
<div
class=
"bg-white col"
v-if=
"chosenMenu
==
5"
>
<work></work>
</div>
<div
v-if=
"chosenMenu
==
1"
class=
"flex col"
style=
"flex: 1"
>
<okr
v-if=
"okrMenu
==
1"
></okr>
<align-view
v-if=
"okrMenu
==
2"
></align-view>
<div
v-if=
"chosenMenu
==
1"
class=
"flex col"
style=
"flex: 1"
>
<okr
v-if=
"okrMenu
==
1"
></okr>
<align-view
v-if=
"okrMenu
==
2"
></align-view>
</div>
<div
v-if=
"chosenMenu
==
2"
class=
"col comWorkDiv"
style=
"overflow: auto"
>
<div
v-if=
"chosenMenu
==
2"
class=
"col comWorkDiv"
style=
"overflow: auto"
>
<teachplan></teachplan>
</div>
<!-- 备课管理 -->
<div
v-if=
"chosenMenu
==
3"
class=
"comWorkDiv"
style=
"overflow: auto"
>
<div
v-if=
"chosenMenu
==
3"
class=
"comWorkDiv"
style=
"overflow: auto"
>
<mySchedule></mySchedule>
</div>
<!-- 我的上课计划 -->
<div
v-if=
"chosenMenu
==
4"
class=
"comWorkDiv"
style=
"overflow: auto"
>
<div
v-if=
"chosenMenu
==
4"
class=
"comWorkDiv"
style=
"overflow: auto"
>
<myClassmate></myClassmate>
</div>
<!-- zk新增公告弹窗 -->
<notice-form
v-if=
"isShowNotice"
@
fathergoBefore=
"fathergoBefore"
@
fathergoAfter=
"fathergoAfter"
:seting-obj=
"noticeObj"
@
close=
"closeNoticeForm"
>
<notice-form
v-if=
"isShowNotice"
@
fathergoBefore=
"fathergoBefore"
@
fathergoAfter=
"fathergoAfter"
:seting-obj=
"noticeObj"
@
close=
"closeNoticeForm"
>
</notice-form>
</div>
</
template
>
<
script
>
import
{
GetMyNoticePageList
}
from
"../api/course/index"
;
import
{
GetMyNoticePageList
}
from
'../api/course/index'
import
teachplan
from
'./course/teacherLesson'
import
okr
from
'./okr/index'
import
alignView
from
'./okr/okr-align-view'
import
noticeForm
from
'../components/course/notice-form'
import
mySchedule
from
'./scheduling/mySchedule'
import
myClassmate
from
'./scheduling/myClassmate'
;
import
work
from
'../components/work/index'
import
eventsCalendar
from
'../components/stuMan/eventsCalendar'
export
default
{
components
:{
teachplan
,
okr
,
alignView
,
noticeForm
,
mySchedule
,
myClassmate
,
work
,
eventsCalendar
},
name
:
'PageIndex'
,
data
(){
return
{
options
:[
{
label
:
'OKR'
,
value
:
'one'
},
],
model
:
'one'
,
AccountType
:
1
,
ispower
:
false
,
//是否显示备课管理
chosenMenu
:
5
,
okrMenu
:
1
,
import
teachplan
from
"./course/teacherLesson"
;
import
okr
from
"./okr/index"
;
import
alignView
from
"./okr/okr-align-view"
;
import
noticeForm
from
"../components/course/notice-form"
;
import
mySchedule
from
"./scheduling/mySchedule"
;
import
myClassmate
from
"./scheduling/myClassmate"
;
import
work
from
"../components/work/index"
;
import
eventsCalendar
from
"../components/stuMan/eventsCalendar"
;
//通知请求参数
noticeMsg
:{
pageIndex
:
1
,
pageSize
:
1
,
LookTime
:
""
},
isShowNotice
:
false
,
noticeObj
:{},
TimeList
:[],
//存放时间作为比较
}
},
created
()
{
export
default
{
components
:
{
teachplan
,
okr
,
alignView
,
noticeForm
,
mySchedule
,
myClassmate
,
work
,
eventsCalendar
},
name
:
"PageIndex"
,
data
()
{
return
{
options
:
[{
label
:
"OKR"
,
value
:
"one"
}],
model
:
"one"
,
AccountType
:
1
,
ispower
:
false
,
//是否显示备课管理
chosenMenu
:
6
,
okrMenu
:
1
,
},
mounted
()
{
let
userInfo
=
this
.
getLocalStorage
();
this
.
AccountType
=
userInfo
.
AccountType
if
(
userInfo
.
AccountType
&&
userInfo
.
AccountType
==
2
){
//是否是教师1不是 2是
this
.
options
=
[
{
label
:
'OKR'
,
value
:
'one'
},
{
label
:
'备课管理'
,
value
:
'two'
},
];
}
this
.
ispower
=
false
;
if
(
userInfo
.
MenuList
.
length
>
0
){
this
.
getMapList
(
userInfo
.
MenuList
)
//判断菜单权限是否有
}
if
(
this
.
ispower
==
true
){
this
.
options
=
[
{
label
:
'OKR'
,
value
:
'one'
},
{
label
:
'备课管理'
,
value
:
'two'
},
];
}
var
notifyTime
=
window
.
localStorage
.
getItem
(
'notifyTime'
);
if
(
notifyTime
){
//通知请求参数
noticeMsg
:
{
pageIndex
:
1
,
pageSize
:
1
,
LookTime
:
""
},
isShowNotice
:
false
,
noticeObj
:
{},
TimeList
:
[]
//存放时间作为比较
};
},
created
()
{},
mounted
()
{
let
userInfo
=
this
.
getLocalStorage
();
this
.
AccountType
=
userInfo
.
AccountType
;
if
(
userInfo
.
AccountType
&&
userInfo
.
AccountType
==
2
)
{
//是否是教师1不是 2是
this
.
options
=
[
{
label
:
"OKR"
,
value
:
"one"
},
{
label
:
"备课管理"
,
value
:
"two"
}
];
}
this
.
ispower
=
false
;
if
(
userInfo
.
MenuList
.
length
>
0
)
{
this
.
getMapList
(
userInfo
.
MenuList
);
//判断菜单权限是否有
}
if
(
this
.
ispower
==
true
)
{
this
.
options
=
[
{
label
:
"OKR"
,
value
:
"one"
},
{
label
:
"备课管理"
,
value
:
"two"
}
];
}
var
notifyTime
=
window
.
localStorage
.
getItem
(
"notifyTime"
);
if
(
notifyTime
)
{
this
.
noticeMsg
.
LookTime
=
notifyTime
;
}
this
.
getNoticeList
();
}
this
.
getNoticeList
();
},
methods
:
{
changeMenu
(
i
)
{
if
(
i
==
1
)
{
this
.
okrMenu
=
1
;
}
this
.
chosenMenu
=
i
;
},
methods
:
{
changeMenu
(
i
)
{
if
(
i
==
1
)
{
this
.
okrMenu
=
1
getMapList
(
list
)
{
list
.
forEach
(
x
=>
{
if
(
x
.
MenuUrl
==
"/course/teacherLesson"
)
{
this
.
ispower
=
true
;
}
this
.
chosenMenu
=
i
},
getMapList
(
list
){
list
.
forEach
(
x
=>
{
if
(
x
.
MenuUrl
==
'/course/teacherLesson'
){
this
.
ispower
=
true
}
if
(
x
.
SubList
.
length
>
0
){
this
.
getMapList
(
x
.
SubList
)
}
})
},
if
(
x
.
SubList
.
length
>
0
)
{
this
.
getMapList
(
x
.
SubList
);
}
});
},
//获取获取公告弹窗数据
getNoticeList
(){
GetMyNoticePageList
(
this
.
noticeMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
noticeObj
=
res
.
Data
;
if
(
res
.
Data
.
PageData
.
length
>
0
){
this
.
isShowNotice
=
true
;
}
if
(
res
.
Data
.
PageData
[
0
]
&&
res
.
Data
.
PageData
[
0
].
UpdateTimeStr
){
this
.
TimeList
.
push
(
new
Date
(
res
.
Data
.
PageData
[
0
].
UpdateTimeStr
));
var
maxDate
=
new
Date
(
Math
.
max
.
apply
(
null
,
this
.
TimeList
));
var
date
=
new
Date
(
maxDate
);
var
y
=
date
.
getFullYear
();
var
m
=
date
.
getMonth
()
+
1
;
m
=
m
<
10
?
(
'0'
+
m
)
:
m
;
var
d
=
date
.
getDate
();
d
=
d
<
10
?
(
'0'
+
d
)
:
d
;
var
notifyData
=
y
+
'-'
+
m
+
'-'
+
d
+
' '
+
date
.
getHours
()
+
':'
+
date
.
getMinutes
()
+
':'
+
date
.
getSeconds
();
localStorage
.
setItem
(
"notifyTime"
,
notifyData
);
}
//获取获取公告弹窗数据
getNoticeList
()
{
GetMyNoticePageList
(
this
.
noticeMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
noticeObj
=
res
.
Data
;
if
(
res
.
Data
.
PageData
.
length
>
0
)
{
this
.
isShowNotice
=
true
;
}
})
},
//关闭公告弹窗
closeNoticeForm
(){
this
.
isShowNotice
=
false
;
},
//向后翻页
fathergoAfter
(){
this
.
noticeMsg
.
pageIndex
++
;
this
.
getNoticeList
();
},
//往回翻页
fathergoBefore
(){
this
.
noticeMsg
.
pageIndex
--
;
this
.
getNoticeList
();
}
if
(
res
.
Data
.
PageData
[
0
]
&&
res
.
Data
.
PageData
[
0
].
UpdateTimeStr
)
{
this
.
TimeList
.
push
(
new
Date
(
res
.
Data
.
PageData
[
0
].
UpdateTimeStr
));
var
maxDate
=
new
Date
(
Math
.
max
.
apply
(
null
,
this
.
TimeList
));
var
date
=
new
Date
(
maxDate
);
var
y
=
date
.
getFullYear
();
var
m
=
date
.
getMonth
()
+
1
;
m
=
m
<
10
?
"0"
+
m
:
m
;
var
d
=
date
.
getDate
();
d
=
d
<
10
?
"0"
+
d
:
d
;
var
notifyData
=
y
+
"-"
+
m
+
"-"
+
d
+
" "
+
date
.
getHours
()
+
":"
+
date
.
getMinutes
()
+
":"
+
date
.
getSeconds
();
localStorage
.
setItem
(
"notifyTime"
,
notifyData
);
}
}
});
},
//关闭公告弹窗
closeNoticeForm
()
{
this
.
isShowNotice
=
false
;
},
//向后翻页
fathergoAfter
()
{
this
.
noticeMsg
.
pageIndex
++
;
this
.
getNoticeList
();
},
//往回翻页
fathergoBefore
()
{
this
.
noticeMsg
.
pageIndex
--
;
this
.
getNoticeList
();
}
}
};
</
script
>
<
style
>
.homebx
.box
{
width
:
100%
;
height
:
50px
;
.homebx
.box
{
width
:
100%
;
height
:
50px
;
}
.homebx
{
margin
:
0
;
}
.myscroll
::-webkit-scrollbar
{
display
:
none
;
}
}
.homebx
{
margin
:
0
;
}
.myscroll
::-webkit-scrollbar
{
display
:
none
;
}
.box
.el-tabs__header
{
margin
:
0
;
}
.sub-header
{
position
:
fixed
;
height
:
56px
;
top
:
60px
;
left
:
0
;
right
:
0
;
transition
:
top
.3s
ease
;
z-index
:
95
;
box-shadow
:
0
10px
30px
0
rgba
(
82
,
63
,
105
,
.08
);
background-color
:
#fff
;
border-top
:
1px
solid
#ebedf3
;
margin
:
0
;
padding
:
10px
20px
;
}
.comWorkDiv
{
height
:
100vh
}
.box
.el-tabs__header
{
margin
:
0
;
}
.sub-header
{
position
:
fixed
;
height
:
56px
;
top
:
0
;
left
:
0
;
right
:
0
;
transition
:
top
0.3s
ease
;
z-index
:
95
;
box-shadow
:
0
10px
30px
0
rgba
(
82
,
63
,
105
,
0.08
);
background-color
:
#fff
;
border-top
:
1px
solid
#ebedf3
;
margin
:
0
;
padding
:
10px
20px
;
}
.comWorkDiv
{
height
:
100vh
;
}
</
style
>
src/pages/activity/QuesActivityList.vue
View file @
42bb9997
...
...
@@ -58,12 +58,14 @@
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<q-btn
flat
size=
"xs"
icon=
"iconfont icon-view"
color=
"accent"
style=
"font-weight:400"
label=
"配置学员"
@
click=
"Gochild(props.row)"
/>
<q-btn
flat
size=
"xs"
icon=
"iconfont icon-view"
color=
"accent"
style=
"font-weight:400"
label=
"配置"
@
click=
"GoYijian(props.row)"
/>
@
click=
"GoYijian(props.row)"
/>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"addObj(props.row)"
/>
@
click=
"addObj(props.row)"
/>
<q-btn
flat
size=
"xs"
icon=
"delete"
color=
"negative"
style=
"font-weight:400"
label=
"删除"
@
click=
"delQuestion(props.row)"
/>
@
click=
"delQuestion(props.row)"
/>
</q-td>
</
template
>
</q-table>
...
...
@@ -248,6 +250,12 @@
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
// 跳转到配置学员详情页
Gochild
(
row
){
this
.
OpenNewUrl
(
'/activity/configurationstudentsList'
,{
ID
:
row
.
ID
});
},
//跳转到意见调查表
GoYijian
(
row
)
{
this
.
OpenNewUrl
(
'/activity/questionnaireList'
,
{
...
...
src/pages/activity/configurationstudentsList.vue
View file @
42bb9997
...
...
@@ -12,23 +12,23 @@
<!-- @click="addObj(null)" -->
</div>
</
template
>
<
template
v-slot:body-cell-IsRequired=
"props"
>
<
template
v-slot:body-cell-IsRequired=
"props"
>
<q-td
:props=
"props"
>
<span
v-if=
"props.row.IsRequired==0"
>
否
</span>
<span
v-if=
"props.row.IsRequired==1"
>
是
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-IsShow=
"props"
>
<
template
v-slot:body-cell-IsShow=
"props"
>
<q-td
:props=
"props"
>
<span
v-if=
"props.row.IsShow==0"
>
是
</span>
<span
v-if=
"props.row.IsShow==1"
>
否
</span>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<
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=
"addObj(props.row)"
/>
...
...
@@ -36,196 +36,146 @@
@
click=
"delQuestion(props.row)"
/>
</q-td>
</
template
>
</q-table>
<wenjuan-form
v-if=
"isShowWenjuan"
:save-obj=
"objOption"
:ID=
"msg.ActivitySurveyId"
@
close=
"closeSaveForm"
@
success=
"resetSearch"
></wenjuan
-form>
</div>
</div>
</q-table>
<student-form
v-if=
"isShowWenjuan"
:save-obj=
"objOption"
:ID=
"msg.ActivitySurveyId"
@
close=
"closeSaveForm"
@
success=
"resetSearch"
></student
-form>
</div>
</div>
</template>
<
script
>
import
wenjuanForm
from
'../../components/activity/wenjuan-form'
export
default
{
meta
:
{
title
:
"意见调查表"
},
components
:
{
wenjuanForm
},
data
()
{
return
{
columns
:
[
{
name
:
'ID'
,
label
:
'ID'
,
align
:
'left'
,
field
:
'ID'
},
{
name
:
'Title'
,
label
:
'问题名称'
,
field
:
'Title'
,
align
:
'left'
},
{
name
:
'FormTypeStr'
,
label
:
'问卷类型'
,
field
:
'FormTypeStr'
,
align
:
'left'
},
{
name
:
'IsRequired'
,
label
:
'是否必填'
,
field
:
'IsRequired'
,
align
:
'left'
},
{
name
:
'IsShow'
,
label
:
'是否显示'
,
field
:
'IsShow'
,
align
:
'left'
},
{
name
:
'Sort'
,
label
:
'排序'
,
field
:
'Sort'
,
align
:
'left'
},
{
name
:
'optioned'
,
label
:
'操作'
,
field
:
'TId'
}
],
dataList
:
[],
loading
:
true
,
ShowOpts
:
[{
label
:
'不限'
,
value
:
'-1'
},
{
label
:
'是'
,
value
:
'0'
},
{
label
:
'否'
,
value
:
'1'
}
],
msg
:{
pageIndex
:
1
,
pageSize
:
15
,
rowsPerPage
:
15
,
PrizeType
:
0
,
Title
:
''
,
IsShow
:
'-1'
,
SurveyType
:
0
,
ActivitySurveyId
:
1
,
//活动id
},
platList
:[],
pageCount
:
0
,
isShowWenjuan
:
false
,
objOption
:
null
,
}
},
created
()
{
},
mounted
()
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
ID
){
this
.
msg
.
ActivitySurveyId
=
this
.
$route
.
query
.
ID
;
}
this
.
getPlat
();
this
.
getList
();
},
methods
:
{
getPlat
(){
this
.
apipostDS
(
"/api/Survey/GetActivitySurveyGuestPage"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
this
.
platList
=
res
.
data
.
data
;
let
obj
=
{
Id
:
0
,
Name
:
'不限'
import
studentForm
from
'../../components/activity/student-from'
import
{
getActivitySurveyGuestPage
,
removeActivitySurveyGuest
}
from
'../../api/studentmsg/index'
export
default
{
meta
:
{
title
:
"意见调查表"
},
components
:
{
studentForm
},
data
()
{
return
{
columns
:
[{
name
:
'Id'
,
label
:
'ID'
,
align
:
'left'
,
field
:
'Id'
},
{
name
:
'GuestName'
,
label
:
'学员名称'
,
field
:
'GuestName'
,
align
:
'left'
},
{
name
:
'optioned'
,
label
:
'操作'
,
field
:
'TId'
}
],
dataList
:
[],
loading
:
true
,
msg
:
{
pageIndex
:
1
,
pageSize
:
12
,
rowsPerPage
:
12
,
SurveyId
:
1
,
},
pageCount
:
0
,
isShowWenjuan
:
false
,
objOption
:
null
,
}
this
.
platList
.
unshift
(
obj
);
}
else
{
this
.
Info
(
res
.
data
.
message
);
}
console
.
log
(
'数据信息'
+
res
.
data
)
})
},
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
getList
(){
this
.
loading
=
true
;
this
.
apipostDS
(
"/api/Survey/GetPageList"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
){
this
.
dataList
=
res
.
data
.
data
.
pageData
;
this
.
pageCount
=
res
.
data
.
data
.
pageCount
;
}
else
{
this
.
Info
(
res
.
data
.
message
);
}
})
},
addObj
(
obj
)
{
if
(
obj
)
{
this
.
objOption
=
obj
}
else
{
this
.
objOption
=
null
}
this
.
isShowWenjuan
=
true
;
},
//删除问卷
delQuestion
(
row
){
let
that
=
this
;
this
.
$q
.
dialog
({
title
:
"提示"
,
message
:
'是否删除该活动信息?'
,
cancel
:
{
label
:
"取消"
,
flat
:
true
},
ok
:
{
label
:
"确认"
,
flat
:
true
,
focus
:
true
}
}).
onOk
(()
=>
{
that
.
apipostDS
(
"/api/Survey/DelSurvey"
,
{
SurveyID
:
row
.
ID
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据删除成功!'
,
position
:
'top'
})
that
.
getList
();
}
else
{
that
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
res
.
data
.
message
},
created
()
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
ID
)
{
this
.
msg
.
ActivitySurveyId
=
this
.
$route
.
query
.
ID
;
}
},
mounted
()
{
this
.
getList
();
},
methods
:
{
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
getList
()
{
this
.
loading
=
true
;
getActivitySurveyGuestPage
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
;
if
(
res
.
Code
==
1
)
{
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
pageCount
=
res
.
Data
.
Count
}
console
.
log
(
"res"
,
res
);
});
},
addObj
(
obj
)
{
if
(
obj
)
{
this
.
objOption
=
obj
}
else
{
this
.
objOption
=
null
}
this
.
isShowWenjuan
=
true
;
},
//删除当前行信息
delQuestion
(
row
)
{
let
that
=
this
;
this
.
$q
.
dialog
({
title
:
"提示"
,
message
:
'是否删除该活动信息?'
,
cancel
:
{
label
:
"取消"
,
flat
:
true
},
ok
:
{
label
:
"确认"
,
flat
:
true
,
focus
:
true
}
}).
onOk
(()
=>
{
removeActivitySurveyGuest
({
Id
:
row
.
Id
}).
then
(
res
=>
{
this
.
dataList
=
''
;
this
.
pageCount
=
''
;
console
.
log
(
res
+
'111111'
)
if
(
res
.
Code
==
1
)
{
that
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据删除成功!'
,
position
:
'top'
})
that
.
getList
();
}
else
{
that
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
res
.
data
.
message
,
})
}
})
})
}
},
);
});
},
closeSaveForm
(){
this
.
isShowWenjuan
=
false
;
},
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
},
}
closeSaveForm
()
{
this
.
isShowWenjuan
=
false
;
},
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
},
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
@import
url('~assets/css/table.sass')
</
style
>
\ No newline at end of file
src/pages/activity/questionnaireList.vue
View file @
42bb9997
...
...
@@ -28,23 +28,23 @@
<q-btn
color=
"accent"
size=
"sm"
icon=
"add"
label=
"新增"
@
click=
"addObj(null)"
/>
</div>
</
template
>
<
template
v-slot:body-cell-IsRequired=
"props"
>
<
template
v-slot:body-cell-IsRequired=
"props"
>
<q-td
:props=
"props"
>
<span
v-if=
"props.row.IsRequired==0"
>
否
</span>
<span
v-if=
"props.row.IsRequired==1"
>
是
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-IsShow=
"props"
>
<
template
v-slot:body-cell-IsShow=
"props"
>
<q-td
:props=
"props"
>
<span
v-if=
"props.row.IsShow==0"
>
是
</span>
<span
v-if=
"props.row.IsShow==1"
>
否
</span>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<
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=
"addObj(props.row)"
/>
...
...
@@ -52,195 +52,184 @@
@
click=
"delQuestion(props.row)"
/>
</q-td>
</
template
>
</q-table>
<wenjuan-form
v-if=
"isShowWenjuan"
:save-obj=
"objOption"
:ID=
"msg.ActivitySurveyId"
@
close=
"closeSaveForm"
@
success=
"resetSearch"
></wenjuan-form>
</div>
</div>
</q-table>
<wenjuan-form
v-if=
"isShowWenjuan"
:save-obj=
"objOption"
:ID=
"msg.ActivitySurveyId"
@
close=
"closeSaveForm"
@
success=
"resetSearch"
></wenjuan-form>
</div>
</div>
</template>
<
script
>
import
wenjuanForm
from
'../../components/activity/wenjuan-form'
export
default
{
meta
:
{
title
:
"问卷调查"
},
components
:
{
wenjuanForm
},
data
()
{
return
{
columns
:
[
{
name
:
'ID'
,
label
:
'ID'
,
align
:
'left'
,
field
:
'ID'
},
{
name
:
'Title'
,
label
:
'问题名称'
,
field
:
'Title'
,
align
:
'left'
},
{
name
:
'FormTypeStr'
,
label
:
'问卷类型'
,
field
:
'FormTypeStr'
,
align
:
'left'
},
{
name
:
'IsRequired'
,
label
:
'是否必填'
,
field
:
'IsRequired'
,
align
:
'left'
},
{
name
:
'IsShow'
,
label
:
'是否显示'
,
field
:
'IsShow'
,
align
:
'left'
},
{
name
:
'Sort'
,
label
:
'排序'
,
field
:
'Sort'
,
align
:
'left'
},
{
name
:
'optioned'
,
label
:
'操作'
,
field
:
'TId'
}
],
dataList
:
[],
loading
:
true
,
ShowOpts
:
[{
label
:
'不限'
,
value
:
'-1'
},
{
label
:
'是'
,
value
:
'0'
},
{
label
:
'否'
,
value
:
'1'
}
],
msg
:{
pageIndex
:
1
,
pageSize
:
15
,
rowsPerPage
:
15
,
PrizeType
:
0
,
Title
:
''
,
IsShow
:
'-1'
,
SurveyType
:
0
,
ActivitySurveyId
:
0
,
//活动id
},
platList
:[],
pageCount
:
0
,
isShowWenjuan
:
false
,
objOption
:
null
,
}
},
created
()
{
},
mounted
()
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
ID
){
this
.
msg
.
ActivitySurveyId
=
this
.
$route
.
query
.
ID
;
}
this
.
getPlat
();
this
.
getList
();
},
methods
:
{
getPlat
(){
this
.
apipostDS
(
"/api/Survey/GetSurveyTypeEnumList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
this
.
platList
=
res
.
data
.
data
;
let
obj
=
{
Id
:
0
,
Name
:
'不限'
import
wenjuanForm
from
'../../components/activity/wenjuan-form'
export
default
{
meta
:
{
title
:
"问卷调查"
},
components
:
{
wenjuanForm
},
data
()
{
return
{
columns
:
[{
name
:
'ID'
,
label
:
'ID'
,
align
:
'left'
,
field
:
'ID'
},
{
name
:
'Title'
,
label
:
'问题名称'
,
field
:
'Title'
,
align
:
'left'
},
{
name
:
'FormTypeStr'
,
label
:
'问卷类型'
,
field
:
'FormTypeStr'
,
align
:
'left'
},
{
name
:
'IsRequired'
,
label
:
'是否必填'
,
field
:
'IsRequired'
,
align
:
'left'
},
{
name
:
'IsShow'
,
label
:
'是否显示'
,
field
:
'IsShow'
,
align
:
'left'
},
{
name
:
'Sort'
,
label
:
'排序'
,
field
:
'Sort'
,
align
:
'left'
},
{
name
:
'optioned'
,
label
:
'操作'
,
field
:
'TId'
}],
dataList
:
[],
loading
:
true
,
ShowOpts
:
[{
label
:
'不限'
,
value
:
'-1'
},
{
label
:
'是'
,
value
:
'0'
},
{
label
:
'否'
,
value
:
'1'
}],
msg
:
{
pageIndex
:
1
,
pageSize
:
15
,
rowsPerPage
:
15
,
PrizeType
:
0
,
Title
:
''
,
IsShow
:
'-1'
,
SurveyType
:
0
,
ActivitySurveyId
:
0
,
//活动id
},
platList
:
[],
pageCount
:
0
,
isShowWenjuan
:
false
,
objOption
:
null
,
}
},
created
()
{},
mounted
()
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
ID
)
{
this
.
msg
.
ActivitySurveyId
=
this
.
$route
.
query
.
ID
;
}
this
.
platList
.
unshift
(
obj
);
}
else
{
this
.
Info
(
res
.
data
.
message
);
}
})
},
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
getList
(){
this
.
loading
=
true
;
this
.
apipostDS
(
"/api/Survey/GetPageList"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
){
this
.
dataList
=
res
.
data
.
data
.
pageData
;
this
.
pageCount
=
res
.
data
.
data
.
pageCount
;
}
else
{
this
.
Info
(
res
.
data
.
message
);
}
})
},
addObj
(
obj
)
{
if
(
obj
)
{
this
.
objOption
=
obj
}
else
{
this
.
objOption
=
null
}
this
.
isShowWenjuan
=
true
;
},
//删除问卷
delQuestion
(
row
){
let
that
=
this
;
this
.
$q
.
dialog
({
title
:
"提示"
,
message
:
'是否删除该活动信息?'
,
cancel
:
{
label
:
"取消"
,
flat
:
true
},
ok
:
{
label
:
"确认"
,
flat
:
true
,
focus
:
true
}
}).
onOk
(()
=>
{
that
.
apipostDS
(
"/api/Survey/DelSurvey"
,
{
SurveyID
:
row
.
ID
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据删除成功!'
,
position
:
'top'
this
.
getPlat
();
this
.
getList
();
},
methods
:
{
getPlat
()
{
this
.
apipostDS
(
"/api/Survey/GetSurveyTypeEnumList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
platList
=
res
.
data
.
data
;
let
obj
=
{
Id
:
0
,
Name
:
'不限'
}
this
.
platList
.
unshift
(
obj
);
}
else
{
this
.
Info
(
res
.
data
.
message
);
}
})
that
.
getList
();
}
else
{
that
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
res
.
data
.
message
},
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
getList
()
{
this
.
loading
=
true
;
this
.
apipostDS
(
"/api/Survey/GetPageList"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
dataList
=
res
.
data
.
data
.
pageData
;
this
.
pageCount
=
res
.
data
.
data
.
pageCount
;
}
else
{
this
.
Info
(
res
.
data
.
message
);
}
})
}
},
);
});
},
closeSaveForm
(){
this
.
isShowWenjuan
=
false
;
},
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
},
}
addObj
(
obj
)
{
if
(
obj
)
{
this
.
objOption
=
obj
}
else
{
this
.
objOption
=
null
}
this
.
isShowWenjuan
=
true
;
},
//删除问卷
delQuestion
(
row
)
{
let
that
=
this
;
this
.
$q
.
dialog
({
title
:
"提示"
,
message
:
'是否删除该活动信息?'
,
cancel
:
{
label
:
"取消"
,
flat
:
true
},
ok
:
{
label
:
"确认"
,
flat
:
true
,
focus
:
true
}
}).
onOk
(()
=>
{
that
.
apipostDS
(
"/api/Survey/DelSurvey"
,
{
SurveyID
:
row
.
ID
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据删除成功!'
,
position
:
'top'
})
that
.
getList
();
}
else
{
that
.
$q
.
notify
({
type
:
'negative'
,
position
:
"top"
,
message
:
res
.
data
.
message
})
}
},
);
});
},
closeSaveForm
()
{
this
.
isShowWenjuan
=
false
;
},
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
},
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
@import
url('~assets/css/table.sass')
</
style
>
\ No newline at end of file
src/pages/financial/reportform/performanceCommission.vue
View file @
42bb9997
<
style
scoped
>
@import
"../css/cssReset.css"
;
.singeRowTable
tr
:nth-child
(
2n
+
1
)
{
background
:
none
;
}
.dd
{
background-color
:
#E6E6E
6
;
}
.baseSet_Title
{
width
:
120px
!important
;
padding
:
18px
0
0
16px
;
text-align
:
right
;
}
@import
"../css/cssReset.css"
;
.singeRowTable
tr
:nth-child
(
2n
+
1
)
{
background
:
none
;
}
.dd
{
background-color
:
#e6e6e
6
;
}
.baseSet_Title
{
width
:
120px
!important
;
padding
:
18px
0
0
16px
;
text-align
:
right
;
}
.singeRowTable
tr
th
{
border
:
1px
solid
#d2d2d2
;
}
.singeRowTable
tr
th
{
border
:
1px
solid
#d2d2d2
;
}
.studentTracking
td
:first-child
{
background-color
:
#E6E6E6
;
position
:
sticky
;
left
:
0px
;
}
.studentTracking
td
:nth-child
(
2
)
{
background-color
:
#E6E6E6
;
position
:
sticky
;
left
:
109px
;
border
:
1px
solid
#d2d2d2
;
}
.studentTracking
td
:nth-child
(
3
)
{
background-color
:
#E6E6E6
;
position
:
sticky
;
left
:
218px
;
border
:
1px
solid
#d2d2d2
;
}
.studentTracking
td
:first-child
{
background-color
:
#e6e6e6
;
position
:
sticky
;
left
:
0px
;
}
.studentTracking
td
:nth-child
(
2
)
{
background-color
:
#e6e6e6
;
position
:
sticky
;
left
:
109px
;
border
:
1px
solid
#d2d2d2
;
}
.studentTracking
td
:nth-child
(
3
)
{
background-color
:
#e6e6e6
;
position
:
sticky
;
left
:
218px
;
border
:
1px
solid
#d2d2d2
;
}
.studentTracking
th
:first-child
{
position
:
sticky
;
left
:
0px
;
}
.studentTracking
th
:nth-child
(
2
)
{
position
:
sticky
;
left
:
109px
;
border
:
1px
solid
#d2d2d2
;
}
.studentTracking
th
:nth-child
(
3
)
{
position
:
sticky
;
left
:
218px
;
border
:
1px
solid
#d2d2d2
;
}
.studentTracking
th
:first-child
{
position
:
sticky
;
left
:
0px
;
}
.studentTracking
th
:nth-child
(
2
)
{
position
:
sticky
;
left
:
109px
;
border
:
1px
solid
#d2d2d2
;
}
.studentTracking
th
:nth-child
(
3
)
{
position
:
sticky
;
left
:
218px
;
border
:
1px
solid
#d2d2d2
;
}
.bj
{
background-color
:
#e6e6e6
;
}
.stulistNumber
{
display
:
inline-block
;
width
:
25px
;
height
:
25px
;
text-align
:
center
;
line-height
:
22px
;
border
:
1px
solid
#2961FE
;
border-radius
:
50%
;
cursor
:
pointer
;
color
:
#2961FE
;
}
.stulistNumber
{
display
:
inline-block
;
width
:
25px
;
height
:
25px
;
text-align
:
center
;
line-height
:
22px
;
border
:
1px
solid
#2961fe
;
border-radius
:
50%
;
cursor
:
pointer
;
color
:
#2961fe
;
}
.OCourseTable
{
width
:
400px
;
text-align
:
center
;
}
.OCourseTable
{
width
:
400px
;
text-align
:
center
;
}
.OCourseTable
tr
td
{
height
:
40px
;
}
.OCourseTable
tr
td
{
height
:
40px
;
}
.OCourseTable
tr
th
{
height
:
40px
;
background-color
:
rgb
(
238
,
238
,
239
);
}
.OCourseTable
tr
th
{
height
:
40px
;
background-color
:
rgb
(
238
,
238
,
239
);
}
</
style
>
<
template
>
<div
class=
"page-body studentTracking"
>
...
...
@@ -83,29 +85,56 @@
<div
class=
"col-3"
>
<q-field
filled
dense
>
<template
v-slot:control
>
<el-date-picker
v-model=
"dateArray"
size=
"mini"
@
change=
"resetSearch"
value-format=
"yyyy-MM"
type=
"daterange"
style=
"border:none;"
range-separator=
"至"
start-placeholder=
"跟进开始时间"
end-placeholder=
"跟进结束时间"
/>
<el-date-picker
v-model=
"dateArray"
size=
"mini"
@
change=
"resetSearch"
value-format=
"yyyy-MM"
type=
"daterange"
style=
"border:none;"
range-separator=
"至"
start-placeholder=
"跟进开始时间"
end-placeholder=
"跟进结束时间"
/>
</
template
>
</q-field>
</div>
</div>
</div>
<div
style=
"width: 100%;margin-top: 20px"
>
<div
style=
"width: 100%;overflow-x: auto;"
>
<table
class=
"po_content singeRowTable"
ref=
"table"
style=
"border:1px solid #E6E6E6;"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
"loading"
>
<table
class=
"po_content singeRowTable"
ref=
"table"
style=
"border:1px solid #E6E6E6;"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
"loading"
>
<tr>
<th
width=
"120"
rowspan=
"2"
style=
"min-width: 110px;z-index: 999;"
>
部门
</th>
<th
width=
"120"
rowspan=
"2"
style=
"min-width: 110px;z-index: 999;"
>
角色
</th>
<th
width=
"120"
rowspan=
"2"
style=
"min-width: 110px;z-index: 999;"
>
人员
</th>
<th
width=
"120"
rowspan=
"2"
style=
"min-width: 110px;z-index: 999;"
>
部门
</th>
<th
width=
"120"
rowspan=
"2"
style=
"min-width: 110px;z-index: 999;"
>
角色
</th>
<th
width=
"120"
rowspan=
"2"
style=
"min-width: 110px;z-index: 999;"
>
人员
</th>
<th
width=
"500"
colspan=
"7"
style=
"min-width: 500px;"
v-for=
" ( item , index ) in RListlength"
:key=
'index'
>
<span
v-if=
"item.Month.slice(5)<10"
>
{{item.Month.slice(6)}}
</span>
<span
v-else
>
{{item.Month.slice(6)}}
</span>
月
<th
width=
"500"
colspan=
"7"
style=
"min-width: 500px;"
v-for=
"(item, index) in RListlength"
:key=
"index"
>
<span
v-if=
"item.Month.slice(5) < 10"
>
{{
item.Month.slice(6)
}}
</span>
<span
v-else
>
{{ item.Month.slice(6) }}
</span
>
月
</th>
<th
width=
"120"
rowspan=
"2"
style=
"min-width: 110px;"
>
提成合计
</th>
<th
width=
"120"
rowspan=
"2"
style=
"min-width: 110px;"
>
返佣合计
</th>
...
...
@@ -113,42 +142,51 @@
<th
width=
"120"
rowspan=
"2"
style=
"min-width: 110px;"
>
合计
</th>
</tr>
<tr>
<th
v-for=
" ( item , index ) in titlelist "
:key=
'index'
:width=
"item.Id==1?120:200"
>
{{item.Name}}
</th>
<th
v-for=
"(item, index) in titlelist"
:key=
"index"
:width=
"item.Id == 1 ? 120 : 200"
>
{{ item.Name }}
</th>
</tr>
<tr
v-for=
" ( item , index ) in dataList "
:key=
"index"
v-if=
'dataList && dataList.length>0'
>
<tr
v-for=
"(item, index) in dataList"
:key=
"index"
v-if=
"dataList && dataList.length > 0"
:class=
"item.DeptName ? '' : 'bj'"
>
<td
style=
" border: 1px solid #d2d2d2;"
>
{{ item.DeptName }}
{{ item.DeptName }}
</td>
<td>
<span>
{{ item.RoleName }}
</span>
</td>
<td>
{{
item.EmpName
}}
{{
item.EmpName
}}
</td>
<td
v-for=
"
( x , y ) in titlelist
"
:key=
"y"
>
<td
v-for=
"
(x, y) in titlelist
"
:key=
"y"
>
<div
v-if=
"item.MonthList[x.index]"
>
<div
v-if=
"x.Id==1"
>
<span>
{{item.MonthList[x.index].Achievement}}
</span>
<div
v-if=
"x.Id == 1"
>
<span>
{{ item.MonthList[x.index].Achievement }}
</span>
</div>
<div
v-if=
"x.Id
==
2"
style=
"padding: 7px;"
>
<span>
{{
item.MonthList[x.index].Rate
}}
</span>
<div
v-if=
"x.Id
==
2"
style=
"padding: 7px;"
>
<span>
{{
item.MonthList[x.index].Rate
}}
</span>
</div>
<div
v-if=
"x.Id
==
3"
style=
"padding: 3px;"
>
<span>
{{
item.MonthList[x.index].Rebate
}}
</span>
<div
v-if=
"x.Id
==
3"
style=
"padding: 3px;"
>
<span>
{{
item.MonthList[x.index].Rebate
}}
</span>
</div>
<div
v-if=
"x.Id
==
4"
style=
"padding: 3px;"
>
<span>
{{
item.MonthList[x.index].Commission
}}
</span>
<div
v-if=
"x.Id
==
4"
style=
"padding: 3px;"
>
<span>
{{
item.MonthList[x.index].Commission
}}
</span>
</div>
<div
v-if=
"x.Id
==
5"
style=
"padding: 3px;"
>
<span>
{{
item.MonthList[x.index].Brokerage
}}
</span>
<div
v-if=
"x.Id
==
5"
style=
"padding: 3px;"
>
<span>
{{
item.MonthList[x.index].Brokerage
}}
</span>
</div>
<div
v-if=
"x.Id
==
6"
style=
"padding: 3px;"
>
<span>
{{
item.MonthList[x.index].Bonus
}}
</span>
<div
v-if=
"x.Id
==
6"
style=
"padding: 3px;"
>
<span>
{{
item.MonthList[x.index].Bonus
}}
</span>
</div>
<div
v-if=
"x.Id
==
7"
style=
"padding: 3px;"
>
<span>
{{
item.MonthList[x.index].Total
}}
</span>
<div
v-if=
"x.Id
==
7"
style=
"padding: 3px;"
>
<span>
{{
item.MonthList[x.index].Total
}}
</span>
</div>
</div>
</td>
...
...
@@ -164,550 +202,578 @@
<td>
<span>
{{ item.TotalAll }}
</span>
</td>
</tr>
</table>
</div>
<div
v-if=
'!dataList||(dataList && dataList.length==0)'
style=
"width: 100%;border:1px solid #E6E6E6;display: flex;align-items: center;justify-content: center;height: 60px;"
>
<div
v-if=
"!dataList || (dataList && dataList.length == 0)"
style=
"width: 100%;border:1px solid #E6E6E6;display: flex;align-items: center;justify-content: center;height: 60px;"
>
暂无数据
</div>
</div>
<studentRight-form
v-if=
"isShowStuRight"
:isJudgeTrans=
"isJudgeTrans"
:BelongType=
"BelongType"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"getList"
@
reload=
"getList"
>
<studentRight-form
v-if=
"isShowStuRight"
:isJudgeTrans=
"isJudgeTrans"
:BelongType=
"BelongType"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
@
success=
"getList"
@
reload=
"getList"
>
</studentRight-form>
<studentFUForm
v-if=
"isShowStuFU"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
>
<studentFUForm
v-if=
"isShowStuFU"
:save-obj=
"stuOption"
@
close=
"closeStuForm"
>
</studentFUForm>
</div>
</template>
<
script
>
import
{
GetSellAchievementsRankStat_V2
,
}
from
'../../../api/finance/index'
import
{
queryCourseDropdownList
,
}
from
'../../../api/course/index'
import
{
queryEmployee
}
from
"../../../api/users/user"
;
import
{
queryGuestStateList
,
CreateTypeList
,
GetStuChannelList
,
GetCustomerList
,
getGuestLearningGoalsEnumList
}
from
"../../../api/sale/sale.js"
;
import
{
queryStuStageList
,
GetStudentTypeList
,
GetPersonalDimension
,
getSchoolDropdown
,
getStudentDorpDownList
}
from
"../../../api/school/index"
;
import
{
EduDownLoad
}
from
"../../../api/common/common"
;
import
studentRightForm
from
"../../../components/school/student/studentRight-form"
;
import
studentFUForm
from
"../../../components/school/student/studentFu-form"
;
import
{
mapState
}
from
"vuex"
;
import
{
GetSellAchievementsRankStat_V2
}
from
"../../../api/finance/index"
;
import
{
queryCourseDropdownList
}
from
"../../../api/course/index"
;
import
{
queryEmployee
}
from
"../../../api/users/user"
;
import
{
queryGuestStateList
,
CreateTypeList
,
GetStuChannelList
,
GetCustomerList
,
getGuestLearningGoalsEnumList
}
from
"../../../api/sale/sale.js"
;
import
{
queryStuStageList
,
GetStudentTypeList
,
GetPersonalDimension
,
getSchoolDropdown
,
getStudentDorpDownList
}
from
"../../../api/school/index"
;
import
{
EduDownLoad
}
from
"../../../api/common/common"
;
import
studentRightForm
from
"../../../components/school/student/studentRight-form"
;
import
studentFUForm
from
"../../../components/school/student/studentFu-form"
;
import
{
mapState
}
from
"vuex"
;
export
default
{
meta
:
{
title
:
"教师学员跟踪"
},
props
:
{},
components
:
{
studentRightForm
,
studentFUForm
},
data
()
{
return
{
msg
:
{
StartMonth
:
''
,
EndMonth
:
''
,
export
default
{
meta
:
{
title
:
"教师学员跟踪"
},
props
:
{},
components
:
{
studentRightForm
,
studentFUForm
},
data
()
{
return
{
msg
:
{
StartMonth
:
""
,
EndMonth
:
""
},
//归属类型列表
BelongTypeList
:
[
{
Id
:
1
,
Name
:
"全部"
},
//归属类型列表
BelongTypeList
:
[{
Id
:
1
,
Name
:
"全部"
},
{
Id
:
2
,
Name
:
"我负责的"
},
{
Id
:
3
,
Name
:
"我协同的"
},
{
Id
:
4
,
Name
:
"我下属的"
}
],
{
Id
:
2
,
Name
:
"我负责的"
},
{
Id
:
3
,
Name
:
"我协同的"
},
{
Id
:
4
,
Name
:
"我下属的"
}
],
loading
:
false
,
dataList
:
[],
//列表数据
PageCount
:
0
,
customTypeList
:
[],
//客户类型
customState
:
[],
isMyStuList
:
[{
Id
:
'-1'
,
Name
:
'不限'
},
{
Id
:
'1'
,
Name
:
'是'
},
{
Id
:
'0'
,
Name
:
'否'
},
],
hetongList
:
[{
Id
:
'1'
,
Name
:
'正常'
},
{
Id
:
'2'
,
Name
:
'退学'
},
{
Id
:
'5'
,
Name
:
'停课'
},
{
Id
:
'7'
,
Name
:
'毕业'
},
],
dateArray
:
[],
//日期数组
RListlength
:
0
,
titlelist
:
[],
stuOption
:
null
,
BelongType
:
1
,
isShowStuRight
:
false
,
isJudgeTrans
:
1
,
SubordList
:
[],
//我的下属数据
AllSubordList
:
[],
stuOption
:
null
,
isShowStuFU
:
false
,
morequery
:
true
,
CompanyList
:
[],
allCourseList
:
[],
//课程
myCourseList
:
[],
RoleListData
:
[],
//课程顾问下拉数据
customFromList
:
[],
//客户来源
StuChannelList
:
[],
//收客渠道
allStuChannelList
:
[],
//所有收客渠道
customList
:
[],
//同行列表
allCustomList
:
[],
//所有同行列表
//员工列表
employeeList
:
[],
myEmployeeList
:
[],
TransListData
:
[],
//转介人数据
MyTransListData
:
[],
goalsList
:
[],
//学习目的列表
}
loading
:
false
,
dataList
:
[],
//列表数据
PageCount
:
0
,
customTypeList
:
[],
//客户类型
customState
:
[],
isMyStuList
:
[
{
Id
:
"-1"
,
Name
:
"不限"
},
{
Id
:
"1"
,
Name
:
"是"
},
{
Id
:
"0"
,
Name
:
"否"
}
],
hetongList
:
[
{
Id
:
"1"
,
Name
:
"正常"
},
{
Id
:
"2"
,
Name
:
"退学"
},
{
Id
:
"5"
,
Name
:
"停课"
},
{
Id
:
"7"
,
Name
:
"毕业"
}
],
dateArray
:
[],
//日期数组
RListlength
:
0
,
titlelist
:
[],
stuOption
:
null
,
BelongType
:
1
,
isShowStuRight
:
false
,
isJudgeTrans
:
1
,
SubordList
:
[],
//我的下属数据
AllSubordList
:
[],
stuOption
:
null
,
isShowStuFU
:
false
,
morequery
:
true
,
CompanyList
:
[],
allCourseList
:
[],
//课程
myCourseList
:
[],
RoleListData
:
[],
//课程顾问下拉数据
customFromList
:
[],
//客户来源
StuChannelList
:
[],
//收客渠道
allStuChannelList
:
[],
//所有收客渠道
customList
:
[],
//同行列表
allCustomList
:
[],
//所有同行列表
//员工列表
employeeList
:
[],
myEmployeeList
:
[],
TransListData
:
[],
//转介人数据
MyTransListData
:
[],
goalsList
:
[]
//学习目的列表
};
},
created
()
{},
mounted
()
{
var
d
=
new
Date
();
var
currentY
=
d
.
getFullYear
();
var
currentM
=
d
.
getMonth
();
var
month
=
d
.
getMonth
()
+
1
;
this
.
msg
.
StartMonth
=
currentY
+
"-"
+
currentM
;
this
.
msg
.
EndMonth
=
currentY
+
"-"
+
month
;
this
.
getList
();
//获取规则
// this.getStuStageList();
// this.getCustomTypeList();
// this.GetSubordList();
// this.getBranchList();
// this.getCourseList(); //获取课程下拉
// this.getRole();
// this.getCustomFrom();
// this.GetStuChannelList();
// this.GetCustomerList();
// this.getEmployeeList();
// this.getStudentDorpDown();
// this.queryGoalsList();
// this.downloadStudentFollow();
},
methods
:
{
downloadStudentFollow
()
{
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
this
.
loading
=
true
;
EduDownLoad
(
"/StudentStat/DownLoadStudentFollowUp"
,
msg
,
"学员跟踪.xls"
,
res
=>
{
this
.
loading
=
false
;
}
);
},
created
()
{
//获取学习目的列表
queryGoalsList
()
{
getGuestLearningGoalsEnumList
({}).
then
(
res
=>
{
this
.
goalsList
=
res
.
Data
;
});
},
mounted
()
{
var
d
=
new
Date
()
var
currentY
=
d
.
getFullYear
();
var
currentM
=
d
.
getMonth
();
var
month
=
d
.
getMonth
()
+
1
;
this
.
msg
.
StartMonth
=
currentY
+
'-'
+
currentM
this
.
msg
.
EndMonth
=
currentY
+
'-'
+
month
this
.
getList
();
//获取规则
// this.getStuStageList();
// this.getCustomTypeList();
// this.GetSubordList();
// this.getBranchList();
// this.getCourseList(); //获取课程下拉
// this.getRole();
// this.getCustomFrom();
// this.GetStuChannelList();
// this.GetCustomerList();
// this.getEmployeeList();
// this.getStudentDorpDown();
// this.queryGoalsList();
// this.downloadStudentFollow();
//获取收客渠道
GetStuChannelList
()
{
GetStuChannelList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
StuChannelList
=
res
.
Data
;
this
.
allStuChannelList
=
res
.
Data
;
}
});
},
methods
:
{
downloadStudentFollow
()
{
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
this
.
loading
=
true
;
EduDownLoad
(
"/StudentStat/DownLoadStudentFollowUp"
,
msg
,
"学员跟踪.xls"
,
res
=>
{
this
.
loading
=
false
;
}
);
},
//获取学习目的列表
queryGoalsList
()
{
getGuestLearningGoalsEnumList
({}).
then
(
res
=>
{
this
.
goalsList
=
res
.
Data
;
});
},
//获取收客渠道
GetStuChannelList
()
{
GetStuChannelList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
StuChannelList
=
res
.
Data
;
this
.
allStuChannelList
=
res
.
Data
;
}
});
},
//筛选渠道
filterStuChannel
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
StuChannelList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
allStuChannelList
)
);
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
StuChannelList
=
this
.
allStuChannelList
.
filter
(
v
=>
v
.
Name
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
}
});
},
//获取客户来源
getCustomFrom
()
{
CreateTypeList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
customFromList
=
res
.
Data
;
}
});
},
//获取客户下拉数据
GetCustomerList
()
{
let
msg
=
{
QCreateBy
:
0
};
GetCustomerList
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
customList
=
res
.
Data
;
this
.
allCustomList
=
res
.
Data
;
}
});
},
//筛选客户
filterFn
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
customList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
allCustomList
));
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
customList
=
this
.
allCustomList
.
filter
(
v
=>
v
.
CustomerName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
}
});
},
//获取员工列表
getEmployeeList
()
{
queryEmployee
({
IsLeave
:
1
}).
then
(
res
=>
{
this
.
employeeList
=
res
.
Data
;
this
.
myEmployeeList
=
res
.
Data
;
});
},
//筛选员工
filterEmployee
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
myEmployeeList
=
this
.
employeeList
.
filter
(
v
=>
v
.
EmployeeName
.
indexOf
(
val
)
>
-
1
//筛选渠道
filterStuChannel
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
StuChannelList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
allStuChannelList
)
);
});
},
//获取转介人下拉
getStudentDorpDown
()
{
getStudentDorpDownList
().
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TransListData
=
res
.
Data
;
this
.
MyTransListData
=
res
.
Data
;
}
});
},
//筛选转介人
filterStudent
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
MyTransListData
=
this
.
TransListData
.
filter
(
v
=>
v
.
StuName
.
indexOf
(
val
)
>
-
1
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
StuChannelList
=
this
.
allStuChannelList
.
filter
(
v
=>
v
.
Name
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
});
},
getRole
()
{
queryEmployee
({
IsLeave
:
1
,
UserRole
:
2
}).
then
(
res
=>
{
this
.
RoleListData
=
res
.
Data
;
});
},
getBranchList
()
{
//获取校区
getSchoolDropdown
({}).
then
(
res
=>
{
}
});
},
//获取客户来源
getCustomFrom
()
{
CreateTypeList
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
customFromList
=
res
.
Data
;
}
});
},
//获取客户下拉数据
GetCustomerList
()
{
let
msg
=
{
QCreateBy
:
0
};
GetCustomerList
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
customList
=
res
.
Data
;
this
.
allCustomList
=
res
.
Data
;
}
});
},
//筛选客户
filterFn
(
val
,
update
)
{
update
(()
=>
{
if
(
val
===
""
)
{
this
.
customList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
allCustomList
));
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
customList
=
this
.
allCustomList
.
filter
(
v
=>
v
.
CustomerName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
}
});
},
//获取员工列表
getEmployeeList
()
{
queryEmployee
({
IsLeave
:
1
}).
then
(
res
=>
{
this
.
employeeList
=
res
.
Data
;
this
.
myEmployeeList
=
res
.
Data
;
});
},
//筛选员工
filterEmployee
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
myEmployeeList
=
this
.
employeeList
.
filter
(
v
=>
v
.
EmployeeName
.
indexOf
(
val
)
>
-
1
);
});
},
//获取转介人下拉
getStudentDorpDown
()
{
getStudentDorpDownList
().
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
TransListData
=
res
.
Data
;
this
.
MyTransListData
=
res
.
Data
;
}
});
},
//筛选转介人
filterStudent
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
MyTransListData
=
this
.
TransListData
.
filter
(
v
=>
v
.
StuName
.
indexOf
(
val
)
>
-
1
);
});
},
getRole
()
{
queryEmployee
({
IsLeave
:
1
,
UserRole
:
2
}).
then
(
res
=>
{
this
.
RoleListData
=
res
.
Data
;
});
},
getBranchList
()
{
//获取校区
getSchoolDropdown
({})
.
then
(
res
=>
{
var
tempArray
=
res
.
Data
;
if
(
!
tempArray
)
{
tempArray
=
[];
}
tempArray
.
unshift
({
SId
:
'-1'
,
SId
:
"-1"
,
SName
:
"不限"
})
})
;
this
.
CompanyList
=
tempArray
;
}).
catch
(()
=>
{
})
},
//获取课程
getCourseList
()
{
queryCourseDropdownList
({
IsQPrice
:
1
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
let
data
=
res
.
Data
this
.
allCourseList
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
this
.
myCourseList
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
}
})
},
//获取我下属的下拉数据
GetSubordList
()
{
GetPersonalDimension
().
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
SubordList
=
res
.
Data
;
this
.
AllSubordList
=
res
.
Data
;
}
});
},
//筛选转介人
filterSubord
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
SubordList
=
this
.
AllSubordList
.
filter
(
v
=>
v
.
EmployeeName
.
indexOf
(
val
)
>
-
1
);
});
},
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
()
},
getList
(
type
)
{
this
.
loading
=
true
;
let
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
))
if
(
this
.
dateArray
&&
this
.
dateArray
.
length
>
0
)
{
msg
.
StartMonth
=
this
.
dateArray
[
0
];
msg
.
EndMonth
=
this
.
dateArray
[
1
];
.
catch
(()
=>
{});
},
//获取课程
getCourseList
()
{
queryCourseDropdownList
({
IsQPrice
:
1
}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
let
data
=
res
.
Data
;
this
.
allCourseList
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
this
.
myCourseList
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
}
});
},
//获取我下属的下拉数据
GetSubordList
()
{
GetPersonalDimension
().
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
SubordList
=
res
.
Data
;
this
.
AllSubordList
=
res
.
Data
;
}
});
},
//筛选转介人
filterSubord
(
val
,
update
,
abort
)
{
update
(()
=>
{
this
.
SubordList
=
this
.
AllSubordList
.
filter
(
v
=>
v
.
EmployeeName
.
indexOf
(
val
)
>
-
1
);
});
},
resetSearch
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
},
//翻页
changePage
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
getList
(
type
)
{
this
.
loading
=
true
;
let
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
if
(
this
.
dateArray
&&
this
.
dateArray
.
length
>
0
)
{
msg
.
StartMonth
=
this
.
dateArray
[
0
];
msg
.
EndMonth
=
this
.
dateArray
[
1
];
}
GetSellAchievementsRankStat_V2
(
msg
).
then
(
res
=>
{
this
.
loading
=
false
;
this
.
RListlength
=
res
.
Data
&&
res
.
Data
[
0
].
MonthList
this
.
titlelist
=
[{
Name
:
'业绩'
,
GetSellAchievementsRankStat_V2
(
msg
)
.
then
(
res
=>
{
this
.
loading
=
false
;
this
.
RListlength
=
res
.
Data
&&
res
.
Data
[
0
].
MonthList
;
this
.
titlelist
=
[
{
Name
:
"业绩"
,
Id
:
1
,
index
:
0
},
{
Name
:
'业绩比例'
,
},
{
Name
:
"业绩比例"
,
Id
:
2
,
index
:
0
},
{
Name
:
'订单返佣'
,
},
{
Name
:
"订单返佣"
,
Id
:
3
,
index
:
0
},{
Name
:
'提成'
,
},
{
Name
:
"提成"
,
Id
:
4
,
index
:
0
},
{
Name
:
'返佣金额'
,
},
{
Name
:
"返佣金额"
,
Id
:
5
,
index
:
0
},
{
Name
:
'人头奖励'
,
},
{
Name
:
"人头奖励"
,
Id
:
6
,
index
:
0
},
{
Name
:
'合计'
,
},
{
Name
:
"合计"
,
Id
:
7
,
index
:
0
},];
this
.
dataList
=
res
.
Data
;
this
.
titlelist
=
[];
for
(
let
i
=
0
;
i
<
this
.
RListlength
.
length
;
i
++
)
{
let
obj
=
[{
Name
:
'业绩'
,
Id
:
1
,
index
:
i
},
{
Name
:
'业绩比例'
,
Id
:
2
,
index
:
i
},
{
Name
:
'订单返佣'
,
Id
:
3
,
index
:
i
},{
Name
:
'提成'
,
Id
:
4
,
index
:
i
},
{
Name
:
'返佣金额'
,
Id
:
5
,
index
:
i
},
{
Name
:
'人头奖励'
,
Id
:
6
,
index
:
i
},
{
Name
:
'合计'
,
Id
:
7
,
index
:
i
},]
this
.
titlelist
=
[...
this
.
titlelist
,
...
obj
]
}
})
.
catch
(()
=>
{
this
.
loading
=
false
;
});
},
//获取客户类型
getCustomTypeList
()
{
GetStudentTypeList
().
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
customTypeList
=
res
.
Data
;
];
this
.
dataList
=
res
.
Data
;
this
.
titlelist
=
[];
for
(
let
i
=
0
;
i
<
this
.
RListlength
.
length
;
i
++
)
{
let
obj
=
[
{
Name
:
"业绩"
,
Id
:
1
,
index
:
i
},
{
Name
:
"业绩比例"
,
Id
:
2
,
index
:
i
},
{
Name
:
"订单返佣"
,
Id
:
3
,
index
:
i
},
{
Name
:
"提成"
,
Id
:
4
,
index
:
i
},
{
Name
:
"返佣金额"
,
Id
:
5
,
index
:
i
},
{
Name
:
"人头奖励"
,
Id
:
6
,
index
:
i
},
{
Name
:
"合计"
,
Id
:
7
,
index
:
i
}
];
this
.
titlelist
=
[...
this
.
titlelist
,
...
obj
];
}
})
},
//获取客户阶段列表
getStuStageList
()
{
queryStuStageList
().
then
(
res
=>
{
this
.
customState
=
res
.
Data
;
.
catch
(()
=>
{
this
.
loading
=
false
;
});
},
getxuyue
(
index
)
{
let
obj
=
{
IntroductionNum
:
0
,
RenewNum
:
0
};
this
.
dataList
.
MonthList
.
forEach
(
x
=>
{
if
(
x
.
MonthNum
==
index
+
1
)
{
obj
=
x
}
})
return
obj
},
//点击学生姓名弹出
getStuRight
(
obj
)
{
if
(
obj
)
{
this
.
stuOption
=
obj
;
this
.
BelongType
=
3
;
},
//获取客户类型
getCustomTypeList
()
{
GetStudentTypeList
().
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
customTypeList
=
res
.
Data
;
}
this
.
isShowStuRight
=
true
;
},
closeStuForm
()
{
this
.
isShowStuRight
=
false
;
this
.
isShowStuFU
=
false
},
resetBelong
()
{
if
(
this
.
msg
.
BelongType
!=
4
)
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
});
},
//获取客户阶段列表
getStuStageList
()
{
queryStuStageList
().
then
(
res
=>
{
this
.
customState
=
res
.
Data
;
});
},
getxuyue
(
index
)
{
let
obj
=
{
IntroductionNum
:
0
,
RenewNum
:
0
};
this
.
dataList
.
MonthList
.
forEach
(
x
=>
{
if
(
x
.
MonthNum
==
index
+
1
)
{
obj
=
x
;
}
},
lookgengduo
(
obj
,
time
)
{
//跟进备注
});
return
obj
;
},
//点击学生姓名弹出
getStuRight
(
obj
)
{
if
(
obj
)
{
this
.
stuOption
=
obj
;
this
.
BelongType
=
3
;
}
this
.
isShowStuRight
=
true
;
},
closeStuForm
()
{
this
.
isShowStuRight
=
false
;
this
.
isShowStuFU
=
false
;
},
resetBelong
()
{
if
(
this
.
msg
.
BelongType
!=
4
)
{
this
.
msg
.
pageIndex
=
1
;
this
.
getList
();
}
},
lookgengduo
(
obj
,
time
)
{
//跟进备注
//计算时间 月底日期
let
Month
=
time
.
split
(
'-'
)[
0
]
+
'-'
+
time
.
split
(
'-'
)[
1
]
+
'-01'
let
date
=
new
Date
(
Month
);
let
currentMonth
=
date
.
getMonth
();
let
nextMonth
=
++
currentMonth
;
let
nextMonthFirstDay
=
new
Date
(
date
.
getFullYear
(),
nextMonth
,
1
);
let
oneDay
=
1000
*
60
*
60
*
24
;
let
endDate
=
new
Date
(
nextMonthFirstDay
-
oneDay
)
let
endMonth
=
time
.
split
(
'-'
)[
0
]
+
'-'
+
time
.
split
(
'-'
)[
1
]
+
'-'
+
endDate
.
getDate
()
if
(
obj
)
{
this
.
stuOption
=
obj
;
this
.
stuOption
.
STime
=
Month
;
this
.
stuOption
.
ETime
=
endMonth
;
this
.
BelongType
=
obj
.
BelongType
;
//计算时间 月底日期
let
Month
=
time
.
split
(
"-"
)[
0
]
+
"-"
+
time
.
split
(
"-"
)[
1
]
+
"-01"
;
let
date
=
new
Date
(
Month
);
let
currentMonth
=
date
.
getMonth
();
let
nextMonth
=
++
currentMonth
;
let
nextMonthFirstDay
=
new
Date
(
date
.
getFullYear
(),
nextMonth
,
1
);
let
oneDay
=
1000
*
60
*
60
*
24
;
let
endDate
=
new
Date
(
nextMonthFirstDay
-
oneDay
);
let
endMonth
=
time
.
split
(
"-"
)[
0
]
+
"-"
+
time
.
split
(
"-"
)[
1
]
+
"-"
+
endDate
.
getDate
();
if
(
obj
)
{
this
.
stuOption
=
obj
;
this
.
stuOption
.
STime
=
Month
;
this
.
stuOption
.
ETime
=
endMonth
;
this
.
BelongType
=
obj
.
BelongType
;
}
this
.
isShowStuFU
=
true
;
},
filterFnkec
(
val
,
update
)
{
//课程的栓选
update
(()
=>
{
if
(
val
===
""
)
{
this
.
myCourseList
=
this
.
allCourseList
;
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
myCourseList
=
this
.
allCourseList
.
filter
(
v
=>
v
.
CourseName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
}
this
.
isShowStuFU
=
true
;
},
filterFnkec
(
val
,
update
)
{
//课程的栓选
update
(()
=>
{
if
(
val
===
''
)
{
this
.
myCourseList
=
this
.
allCourseList
}
else
{
const
needle
=
val
.
toLowerCase
();
this
.
myCourseList
=
this
.
allCourseList
.
filter
(
v
=>
v
.
CourseName
.
toLowerCase
().
indexOf
(
needle
)
>
-
1
);
});
},
getCurseManager
(
row
)
{
let
managerName
=
"<span class='text-grey-4'>暂未推送</span>"
;
if
(
row
.
AssistList
&&
row
.
AssistList
.
length
>
0
)
{
row
.
AssistList
.
forEach
(
y
=>
{
if
(
y
.
AssistType
==
2
)
{
managerName
=
`<span class='text-dark'>
${
y
.
AssistName
}
</span>`
;
}
})
},
getCurseManager
(
row
)
{
let
managerName
=
"<span class='text-grey-4'>暂未推送</span>"
;
if
(
row
.
AssistList
&&
row
.
AssistList
.
length
>
0
)
{
row
.
AssistList
.
forEach
(
y
=>
{
if
(
y
.
AssistType
==
2
)
{
managerName
=
`<span class='text-dark'>
${
y
.
AssistName
}
</span>`
;
}
});
}
return
managerName
;
},
getTeacherManager
(
row
)
{
let
managerName
=
"<span class='text-grey-4'>暂无</span>"
;
if
(
row
.
AssistList
&&
row
.
AssistList
.
length
>
0
)
{
row
.
AssistList
.
forEach
(
y
=>
{
if
(
y
.
AssistType
==
4
)
{
managerName
=
`<span class='text-dark'>
${
y
.
AssistName
}
</span>`
;
}
});
}
return
managerName
;
},
});
}
return
managerName
;
},
getTeacherManager
(
row
)
{
let
managerName
=
"<span class='text-grey-4'>暂无</span>"
;
if
(
row
.
AssistList
&&
row
.
AssistList
.
length
>
0
)
{
row
.
AssistList
.
forEach
(
y
=>
{
if
(
y
.
AssistType
==
4
)
{
managerName
=
`<span class='text-dark'>
${
y
.
AssistName
}
</span>`
;
}
});
}
return
managerName
;
}
}
};
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
@import
url('~assets/css/table.sass')
</
style
>
<
style
scoped
>
/
deep
/
.el-input__inner
,
/
deep
/
.el-range-input
{
background-color
:
transparent
;
border
:
none
;
}
/
deep
/
.el-input__inner
,
/
deep
/
.el-range-input
{
background-color
:
transparent
;
border
:
none
;
}
.stics
{
padding
:
10px
20px
;
background
:
#DDDEE
0
;
border-radius
:
4px
;
font-size
:
13px
;
color
:
#000000
;
font-weight
:
bold
}
.stics
{
padding
:
10px
20px
;
background
:
#dddee
0
;
border-radius
:
4px
;
font-size
:
13px
;
color
:
#000000
;
font-weight
:
bold
;
}
.stics
.stics-name
{
color
:
#2D2D2D
;
font-weight
:
600
;
margin-right
:
10px
}
.stics
.stics-name
{
color
:
#2d2d2d
;
font-weight
:
600
;
margin-right
:
10px
;
}
.roatImg
{
transform
:
rotate
(
180deg
);
}
</
style
>
\ No newline at end of file
.roatImg
{
transform
:
rotate
(
180deg
);
}
</
style
>
src/pages/financial/returnPassbook/ReturnperiodsList.vue
View file @
42bb9997
...
...
@@ -65,7 +65,6 @@
<template>
<el-table
ref=
"filterTable"
:data=
"tableData"
v-loading=
'loading'
:header-cell-style=
"
{backgroundColor:'#f5f6f7', color: '#a8a8b3'}" border style="width: 100%">
<el-table-column
prop=
"BatchName"
label=
"周期"
></el-table-column>
<el-table-column
v-if=
"isReturnperiods"
prop=
"TotalMoney"
label=
"累计金额"
>
</el-table-column>
<el-table-column
v-if=
"isReturnperiods"
prop=
"TotalEmployee"
label=
"个人直客累计金额"
>
</el-table-column>
...
...
@@ -76,8 +75,8 @@
<el-table-column
v-if=
"isReturnperiods"
prop=
"CreateDate"
label=
"创建时间"
>
</el-table-column>
<el-table-column
v-if=
"isReturnperiods"
label=
"财务单据"
>
<template
slot-scope=
"scope"
>
<template
v-if=
"scope.row.FinanceIdList"
v-for=
"item in scope.row.FinanceIdList"
>
<a
@
click=
"goDetails(item)"
<template
v-if=
"scope.row.FinanceIdList"
>
<a
v-for=
"(item,index) in scope.row.FinanceIdList"
:key=
"index"
@
click=
"goDetails(item)"
style=
"cursor:pointer;color:blue;text-decoration:underline;display:inline-block;margin-right:10px;"
>
{{
item
}}
</a>
</
template
>
</template>
...
...
@@ -88,13 +87,12 @@
<el-tooltip
class=
"item"
effect=
"dark"
content=
"查看"
placement=
"top"
>
<i
class=
"iconfont icon-sousuo"
@
click=
"goUrl(scope.row.Id)"
></i>
</el-tooltip>
<templat
v-if=
"isReturnperiods"
>
<template
v-if=
"isReturnperiods"
>
<el-tooltip
class=
"item"
effect=
"dark"
v-if=
"scope.row.FinanceIds==''||scope.row.FinanceIds==null"
content=
"生成财务单据"
placement=
"top"
>
<i
class=
"iconfont icon-add"
@
click=
"setCommissionFinanace(scope.row.Id)"
></i>
</el-tooltip>
</templat>
</
templat
e
>
</div>
</template>
</el-table-column>
...
...
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