Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
jml0128
/
xrk-bi
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 754e97a1
authored
Mar 22, 2022
by
llj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 添加可配置任务记录PDF模板
1 parent
e7e4d9f8
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1012 additions
and
20 deletions
package-lock.json
package.json
src/App.vue
src/packages/task-recored/src/editScene/api/index.js
src/packages/task-recored/src/editScene/components/footer.vue
src/packages/task-recored/src/editScene/components/header.vue
src/packages/task-recored/src/editScene/components/main.vue
src/packages/task-recored/src/editScene/index.vue
src/packages/task-recored/src/style/index.css
src/tools/dateFormat.js
src/utils/http.js
webpack.config.js
package-lock.json
View file @
754e97a
{
{
"name"
:
"xrk-bi"
,
"name"
:
"xrk-bi"
,
"version"
:
"0.
1.11
"
,
"version"
:
"0.
2.0
"
,
"lockfileVersion"
:
1
,
"lockfileVersion"
:
1
,
"requires"
:
true
,
"requires"
:
true
,
"dependencies"
:
{
"dependencies"
:
{
...
@@ -1266,6 +1266,21 @@
...
@@ -1266,6 +1266,21 @@
"integrity"
:
"sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk="
,
"integrity"
:
"sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk="
,
"dev"
:
true
"dev"
:
true
},
},
"axios"
:
{
"version"
:
"0.26.1"
,
"resolved"
:
"https://registry.npmjs.org/axios/-/axios-0.26.1.tgz"
,
"integrity"
:
"sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA=="
,
"requires"
:
{
"follow-redirects"
:
"^1.14.8"
},
"dependencies"
:
{
"follow-redirects"
:
{
"version"
:
"1.14.9"
,
"resolved"
:
"https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz"
,
"integrity"
:
"sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="
}
}
},
"babel-code-frame"
:
{
"babel-code-frame"
:
{
"version"
:
"6.26.0"
,
"version"
:
"6.26.0"
,
"resolved"
:
"https://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz"
,
"resolved"
:
"https://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz"
,
...
@@ -2169,6 +2184,12 @@
...
@@ -2169,6 +2184,12 @@
"resolved"
:
"https://registry.nlark.com/bytes/download/bytes-3.1.0.tgz"
,
"resolved"
:
"https://registry.nlark.com/bytes/download/bytes-3.1.0.tgz"
,
"integrity"
:
"sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY="
,
"integrity"
:
"sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY="
,
"dev"
:
true
"dev"
:
true
},
"qs"
:
{
"version"
:
"6.7.0"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"
,
"integrity"
:
"sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
,
"dev"
:
true
}
}
}
}
},
},
...
@@ -2427,7 +2448,6 @@
...
@@ -2427,7 +2448,6 @@
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.nlark.com/call-bind/download/call-bind-1.0.2.tgz"
,
"resolved"
:
"https://registry.nlark.com/call-bind/download/call-bind-1.0.2.tgz"
,
"integrity"
:
"sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw="
,
"integrity"
:
"sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"function-bind"
:
"^1.1.1"
,
"function-bind"
:
"^1.1.1"
,
"get-intrinsic"
:
"^1.0.2"
"get-intrinsic"
:
"^1.0.2"
...
@@ -4359,6 +4379,12 @@
...
@@ -4359,6 +4379,12 @@
"resolved"
:
"https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz"
,
"resolved"
:
"https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz"
,
"integrity"
:
"sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
,
"integrity"
:
"sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
,
"dev"
:
true
"dev"
:
true
},
"qs"
:
{
"version"
:
"6.7.0"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"
,
"integrity"
:
"sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
,
"dev"
:
true
}
}
}
}
},
},
...
@@ -4884,8 +4910,7 @@
...
@@ -4884,8 +4910,7 @@
"function-bind"
:
{
"function-bind"
:
{
"version"
:
"1.1.1"
,
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz"
,
"resolved"
:
"https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz"
,
"integrity"
:
"sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0="
,
"integrity"
:
"sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0="
"dev"
:
true
},
},
"functional-red-black-tree"
:
{
"functional-red-black-tree"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
...
@@ -4941,7 +4966,6 @@
...
@@ -4941,7 +4966,6 @@
"version"
:
"1.1.1"
,
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz?cache=0&sync_timestamp=1612364352840&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-intrinsic%2Fdownload%2Fget-intrinsic-1.1.1.tgz"
,
"resolved"
:
"https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz?cache=0&sync_timestamp=1612364352840&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-intrinsic%2Fdownload%2Fget-intrinsic-1.1.1.tgz"
,
"integrity"
:
"sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y="
,
"integrity"
:
"sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"function-bind"
:
"^1.1.1"
,
"function-bind"
:
"^1.1.1"
,
"has"
:
"^1.0.3"
,
"has"
:
"^1.0.3"
,
...
@@ -5106,7 +5130,6 @@
...
@@ -5106,7 +5130,6 @@
"version"
:
"1.0.3"
,
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.nlark.com/has/download/has-1.0.3.tgz?cache=0&sync_timestamp=1618847173393&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"
,
"resolved"
:
"https://registry.nlark.com/has/download/has-1.0.3.tgz?cache=0&sync_timestamp=1618847173393&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas%2Fdownload%2Fhas-1.0.3.tgz"
,
"integrity"
:
"sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y="
,
"integrity"
:
"sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"function-bind"
:
"^1.1.1"
"function-bind"
:
"^1.1.1"
}
}
...
@@ -5135,8 +5158,7 @@
...
@@ -5135,8 +5158,7 @@
"has-symbols"
:
{
"has-symbols"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.nlark.com/has-symbols/download/has-symbols-1.0.2.tgz"
,
"resolved"
:
"https://registry.nlark.com/has-symbols/download/has-symbols-1.0.2.tgz"
,
"integrity"
:
"sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM="
,
"integrity"
:
"sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM="
"dev"
:
true
},
},
"has-unicode"
:
{
"has-unicode"
:
{
"version"
:
"2.0.1"
,
"version"
:
"2.0.1"
,
...
@@ -7845,8 +7867,7 @@
...
@@ -7845,8 +7867,7 @@
"object-inspect"
:
{
"object-inspect"
:
{
"version"
:
"1.10.3"
,
"version"
:
"1.10.3"
,
"resolved"
:
"https://registry.nlark.com/object-inspect/download/object-inspect-1.10.3.tgz?cache=0&sync_timestamp=1620446150016&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.10.3.tgz"
,
"resolved"
:
"https://registry.nlark.com/object-inspect/download/object-inspect-1.10.3.tgz?cache=0&sync_timestamp=1620446150016&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.10.3.tgz"
,
"integrity"
:
"sha1-wqp9LQn1DJk3VwT3oK3yTFeC02k="
,
"integrity"
:
"sha1-wqp9LQn1DJk3VwT3oK3yTFeC02k="
"dev"
:
true
},
},
"object-is"
:
{
"object-is"
:
{
"version"
:
"1.1.5"
,
"version"
:
"1.1.5"
,
...
@@ -9087,10 +9108,12 @@
...
@@ -9087,10 +9108,12 @@
"dev"
:
true
"dev"
:
true
},
},
"qs"
:
{
"qs"
:
{
"version"
:
"6.7.0"
,
"version"
:
"6.10.3"
,
"resolved"
:
"https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz?cache=0&sync_timestamp=1616385328325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.7.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.10.3.tgz"
,
"integrity"
:
"sha1-QdwaAV49WB8WIXdr4xr7KHapsbw="
,
"integrity"
:
"sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ=="
,
"dev"
:
true
"requires"
:
{
"side-channel"
:
"^1.0.4"
}
},
},
"query-string"
:
{
"query-string"
:
{
"version"
:
"4.3.4"
,
"version"
:
"4.3.4"
,
...
@@ -10041,6 +10064,16 @@
...
@@ -10041,6 +10064,16 @@
"integrity"
:
"sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I="
,
"integrity"
:
"sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I="
,
"dev"
:
true
"dev"
:
true
},
},
"side-channel"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
,
"integrity"
:
"sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw=="
,
"requires"
:
{
"call-bind"
:
"^1.0.0"
,
"get-intrinsic"
:
"^1.0.2"
,
"object-inspect"
:
"^1.9.0"
}
},
"signal-exit"
:
{
"signal-exit"
:
{
"version"
:
"3.0.3"
,
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.nlark.com/signal-exit/download/signal-exit-3.0.3.tgz"
,
"resolved"
:
"https://registry.nlark.com/signal-exit/download/signal-exit-3.0.3.tgz"
,
...
...
package.json
View file @
754e97a
...
@@ -20,9 +20,11 @@
...
@@ -20,9 +20,11 @@
"fix"
:
"eslint --fix ./src --ext .js,.vue "
"fix"
:
"eslint --fix ./src --ext .js,.vue "
},
},
"dependencies"
:
{
"dependencies"
:
{
"axios"
:
"^0.26.1"
,
"echarts"
:
"^5.1.2"
,
"echarts"
:
"^5.1.2"
,
"element-ui"
:
"^2.15.2"
,
"element-ui"
:
"^2.15.2"
,
"html2canvas"
:
"^1.1.4"
,
"html2canvas"
:
"^1.1.4"
,
"qs"
:
"^6.10.3"
,
"swiper"
:
"^6.7.0"
,
"swiper"
:
"^6.7.0"
,
"uuid"
:
"^8.3.2"
,
"uuid"
:
"^8.3.2"
,
"vue"
:
"^2.5.11"
,
"vue"
:
"^2.5.11"
,
...
@@ -32,7 +34,6 @@
...
@@ -32,7 +34,6 @@
},
},
"devDependencies"
:
{
"devDependencies"
:
{
"@vue/cli-plugin-eslint"
:
"~4.5.0"
,
"@vue/cli-plugin-eslint"
:
"~4.5.0"
,
"@vue/composition-api"
:
"^1.0.0-rc.11"
,
"@vue/composition-api"
:
"^1.0.0-rc.11"
,
"@vue/eslint-config-prettier"
:
"^6.0.0"
,
"@vue/eslint-config-prettier"
:
"^6.0.0"
,
"babel-core"
:
"^6.26.0"
,
"babel-core"
:
"^6.26.0"
,
...
...
src/App.vue
View file @
754e97a
...
@@ -35,15 +35,19 @@
...
@@ -35,15 +35,19 @@
<
script
>
<
script
>
import
{
getQueryVariable
}
from
'./packages/bi/src/chart-type/common'
;
import
{
getQueryVariable
}
from
'./packages/bi/src/chart-type/common'
;
import
editScene
from
'./packages/task-recored/src/editScene'
;
export
default
{
export
default
{
name
:
'App'
,
name
:
'App'
,
components
:
{
editScene
},
data
()
{
data
()
{
return
{
return
{
isMobile
:
+
getQueryVariable
(
'mobile'
)
===
1
,
isMobile
:
+
getQueryVariable
(
'mobile'
)
===
1
,
isPrint
:
+
getQueryVariable
(
'print'
)
===
1
,
isPrint
:
+
getQueryVariable
(
'print'
)
===
1
,
projectType
:
+
getQueryVariable
(
'projectType'
)
||
6
,
projectType
:
+
getQueryVariable
(
'projectType'
)
||
6
,
componentName
:
getQueryVariable
(
'componentName'
)
||
'XrkBi'
// componentName: getQueryVariable('componentName') || 'XrkBi'
componentName
:
'editScene'
};
};
}
}
};
};
...
...
src/packages/task-recored/src/editScene/api/index.js
0 → 100644
View file @
754e97a
import
{
post
}
from
'../../../../../utils/http'
;
const
basePath
=
'https://saas-crm-wx.jimijiayuan.cn/rest/saas/crm/xcx'
;
// 获取任务详情
export
const
makeSceneTaskInfo
=
data
=>
post
(
`
${
basePath
}
/pdf/ms/makeSceneTaskInfo`
,
data
);
src/packages/task-recored/src/editScene/components/footer.vue
0 → 100644
View file @
754e97a
<
template
>
<div
class=
"content"
>
<div
class=
"content-title"
>
<span
class=
"left-bar"
>
<img
src=
"http://cdn.yxvzb.com/WEB/SaaS/images/bi/personal/line-left.png"
alt=
""
/>
</span>
<span
class=
"content-title-text"
>
信息披露
</span>
<span
class=
"right-bar"
>
<img
src=
"http://cdn.yxvzb.com/WEB/SaaS/images/bi/personal/line-right.png"
alt=
""
/>
</span>
</div>
<div
class=
"content-body"
>
<div
class=
"static-content-module"
>
<div
class=
"content-body-title"
>
服务公司声明
</div>
<div
class=
"content-body-text"
>
本公司以勤勉的职业态度,独立、客观地出具本报告。本报告所采用的数据和信息均来自项目执行采集,本公司不保证该等信息的准确性或完整性。分析逻辑基于团队的职业理解,清晰准确地反映了本公司的观点,结论不受任何第三方的授意或影响,特此声明。
</div>
</div>
<div
class=
"static-content-module"
>
<div
class=
"content-body-title"
>
法律声明
</div>
<div
class=
"content-body-text"
>
本报告仅供本公司的客户使用。本公司不会因接收人收到本报告而视其为本公司的当然客户。
<br
/>
本报告所载的资料仅反映本公司截止发布本报告当日的判断。在不同时期,本公司可发出与本报告所载资料不一致的报告。
<br
/>
本报告的版权归本公司所有,未经书面许可,任何机构和个人不得以任何形式翻版、复制、发表或引用,或再次分发给任何其他人,或以任何侵犯本公司版权的其他方式使用。
<br
/>
向日葵将尽商业上合理水平的技能和注意义务为平台用户提供稳定的技术服务,但不对服务内容本身承担责任。
</div>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{};
</
script
>
<
style
></
style
>
src/packages/task-recored/src/editScene/components/header.vue
0 → 100644
View file @
754e97a
<
template
>
<div>
<div
class=
"title"
>
张三—任务记录数据报表
</div>
<div
class=
"block_box"
>
<div
class=
"bi_title"
>
<div
class=
"bi_title_text"
>
<div
class=
"bi_title_text_content"
>
<div
class=
"bi_title_text_index"
>
01
</div>
任务基础信息
</div>
<img
src=
"http://cdn.yxvzb.com/WEB/SaaS/images/bi/svg/title.png"
alt=
""
class=
"bi_title_text_icon"
width=
"62"
/>
</div>
</div>
<div
class=
"info"
>
<div
class=
"info-item"
>
<span>
项目执行人:
</span>
<span>
张三
</span>
</div>
<div
class=
"info-item"
>
<span>
项目名称:
</span>
<span>
xxxx准入
</span>
</div>
<div
class=
"info-item"
>
<span>
电话:
</span>
<span>
13222222222
</span>
</div>
<div
class=
"info-item"
>
<span>
发行单位:
</span>
<span>
杭州大江东产业集聚区设宝广告设计工作室杭州大江东产业集聚区设宝广告设计工作室杭州大江东产业集聚区设宝广告设计工作室杭州大江东产业集聚区设宝广告设计工作室
</span>
</div>
<div
class=
"info-item"
>
<span
v-if=
"from === 'gongye'"
>
工业:
</span>
<span
v-if=
"from === 'cso'"
>
服务商:
</span>
<span>
XXXXX服务商
</span>
</div>
<div
class=
"info-item"
>
<span>
任务提交时间:
</span>
<span>
2021-03-31 21:21:21
</span>
</div>
<div
class=
"info-item"
>
<span>
任务编码:
</span>
<span>
PZ_1620375371338
</span>
</div>
<div
class=
"info-item"
>
<span
v-if=
"from === 'gongye'"
>
工业审核人:
</span>
<span
v-if=
"from === 'cso'"
>
服务商审核人:
</span>
<span>
xxxxxxx
</span>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
props
:
{
from
:
{
type
:
String
}
}
};
</
script
>
<
style
></
style
>
src/packages/task-recored/src/editScene/components/main.vue
0 → 100644
View file @
754e97a
<
template
>
<div>
<div
class=
"block_box"
>
<div
class=
"bi_title"
>
<div
class=
"bi_title_text"
>
<div
class=
"bi_title_text_content"
>
<div
class=
"bi_title_text_index"
>
02
</div>
目标基础信息
</div>
<img
src=
"http://cdn.yxvzb.com/WEB/SaaS/images/bi/svg/title.png"
alt
class=
"bi_title_text_icon"
width=
"62"
/>
</div>
</div>
<div
class=
"info"
>
<div
class=
"info-item"
style=
"display: inline-block; vertical-align: top; width: 550px"
>
<div>
{{
resData
.
targetTitle
}}
</div>
<div
style=
"margin-top: 40px"
>
{{
resData
.
customerName
}}
</div>
</div>
<div
class=
"info-item"
style=
"display: inline-block; vertical-align: top"
>
<div>
{{
resData
.
timeTitle
}}
</div>
<div
style=
"margin-top: 40px"
>
{{
`${dateFormat(resData.startDt)
}
-${dateFormat(resData.endDt)
}
`
}}
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"info"
>
<
div
class
=
"info-item"
style
=
"display: inline-block; width: 100%"
>
<
div
>
{{
resData
.
locationTitle
}}
<
/div
>
<
img
style
=
"
width: 530px;
height: 265px;
display: block;
margin-top: 40px;
"
width
=
"530"
height
=
"265"
:
src
=
"resData.addressWatermarkPicUrl"
alt
=
"img"
/>
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"block_box"
>
<
div
class
=
"bi_title"
>
<
div
class
=
"bi_title_text"
>
<
div
class
=
"bi_title_text_content"
>
<
div
class
=
"bi_title_text_index"
>
03
<
/div
>
任务内容信息
<
/div
>
<
img
src
=
"http://cdn.yxvzb.com/WEB/SaaS/images/bi/svg/title.png"
alt
class
=
"bi_title_text_icon"
width
=
"62"
/>
<
/div
>
<
/div
>
<
div
v
-
for
=
"(item, index) in resData.contentTitleList"
:
key
=
"item.id"
>
<!--
单选题
/
投票题
/
多选
-->
<
div
v
-
if
=
"[1, 2, 3].includes(item.type)"
class
=
"question-item"
>
<
div
class
=
"question-item-title"
>
<
span
>
{{
`${index + 1
}
.${item.title
}
`
}}
<
/span
>
<
span
>
{{
titleMap
(
item
.
type
)
}}
<
/span
>
<
div
>
此条任务收集的选择项为:
{{
item
.
type
==
2
?
item
.
answer
.
join
(
','
)
:
item
.
answer
}}
<
/div
>
<
/div
>
<
div
v
-
for
=
"(cItem, cIndex) in item.options"
:
key
=
"cIndex"
:
class
=
"
`question-item-option${item.type == 2 ? ' checkbox' : ''
}
`
"
>
{{
cItem
}}
<
/div
>
<
div
style
=
"color: #666666; font-size: 14px; margin-top: 30px"
>
备注:
{{
item
.
remark
}}
<
/div
>
<
/div
>
<!--
单填空
/
多填空
/
数字填空
/
打分
/
时间
/
月度
/
描述
-->
<
div
v
-
else
-
if
=
"[4, 5, 19, 6, 14, 15, 18].includes(item.type)"
class
=
"question-item"
>
<
div
class
=
"question-item-title"
>
<
span
>
{{
`${index + 1
}
.${item.title
}
`
}}
<
/span
>
<
span
>
{{
titleMap
(
item
.
type
)
}}
<
/span
>
<
/div
>
<
div
class
=
"question-item-answer"
>
{{
item
.
type
==
5
||
item
.
type
==
18
?
item
.
answer
.
join
(
','
)
:
item
.
type
==
6
?
item
.
answer
+
'分'
:
item
.
answer
}}
<
/div
>
<
div
style
=
"color: #666666; font-size: 14px; margin-top: 30px"
>
备注:
{{
item
.
remark
}}
<
/div
>
<
/div
>
<!--
图片题
/
签名题
-->
<
div
v
-
else
-
if
=
"[20, 13].includes(item.type)"
class
=
"question-item"
>
<
div
class
=
"question-item-title"
>
<
span
>
{{
`${index + 1
}
.${item.title
}
`
}}
<
/span
>
<
span
>
{{
titleMap
(
item
.
type
)
}}
<
/span
>
<
/div
>
<
img
v
-
if
=
"item.type === 20"
style
=
"margin-top: 10px"
width
=
"180"
:
src
=
"item.answer"
alt
=
"img"
/>
<
img
v
-
else
v
-
for
=
"file in item.answer"
:
key
=
"file"
style
=
"margin-top: 10px"
width
=
"180"
:
src
=
"file"
alt
=
"img"
/>
<
div
style
=
"color: #666666; font-size: 14px; margin-top: 30px"
>
备注:
{{
item
.
remark
}}
<
/div
>
<
/div
>
<!--
文件题
-->
<
div
v
-
else
-
if
=
"[9, 10, 11, 12].includes(item.type)"
class
=
"question-item"
>
<
div
class
=
"question-item-title"
>
<
span
>
{{
`${index + 1
}
.${item.title
}
`
}}
<
/span
>
<
span
>
{{
titleMap
(
item
.
type
)
}}
<
/span
>
<
/div
>
<
div
v
-
for
=
"file in item.answer"
:
key
=
"file"
class
=
"question-item-answer"
>
{{
file
}}
<
/div
>
<
div
style
=
"color: #666666; font-size: 14px; margin-top: 30px"
>
备注:
{{
item
.
remark
}}
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/template
>
<
script
>
import
dateFormat
from
'../../../../../tools/dateFormat'
;
const
qustionMap
=
{
1
:
'【单选题】'
,
2
:
'【多选题】'
,
3
:
'【单选投票题】'
,
4
:
'【单项填空题】'
,
5
:
'【多项填空题】'
,
6
:
'【打分题】'
,
19
:
'【数字填空题】'
,
20
:
'【图片题】'
,
9
:
'【上传pdf】'
,
10
:
'【上传word】'
,
12
:
'【上传ppt】'
,
11
:
'【上传excel】'
,
13
:
'【图片题】'
,
14
:
'【时间题】'
,
15
:
'【月度题】'
,
18
:
'【描述题】'
}
;
export
default
{
props
:
{
resData
:
Object
}
,
data
()
{
return
{
}
;
}
,
methods
:
{
dateFormat
(
e
)
{
return
dateFormat
(
e
);
}
,
titleMap
(
type
)
{
return
qustionMap
[
type
];
}
}
,
created
()
{
console
.
log
(
this
.
resData
,
'questionList'
);
}
}
;
<
/script
>
<
style
><
/style
>
src/packages/task-recored/src/editScene/index.vue
0 → 100644
View file @
754e97a
<
template
>
<div
class=
"template-container"
>
<Header
:from=
"from"
></Header>
<Main
:resData=
"resData"
></Main>
<Footer></Footer>
</div>
</
template
>
<
script
>
import
Footer
from
'./components/footer.vue'
;
import
Header
from
'./components/header.vue'
;
import
Main
from
'./components/main.vue'
;
import
{
makeSceneTaskInfo
}
from
'./api'
;
export
default
{
name
:
'editScene'
,
props
:
{
from
:
{
type
:
String
,
default
:
'cso'
},
projectType
:
{
type
:
String
||
Number
,
default
:
'20'
},
taskId
:
{
type
:
String
||
Number
,
default
:
'1209161'
}
},
components
:
{
Footer
,
Header
,
Main
},
data
()
{
return
{
resData
:
{}
};
},
created
()
{
makeSceneTaskInfo
({
taskId
:
this
.
taskId
}).
then
(
res
=>
{
this
.
resData
=
res
.
data
[
0
];
});
}
};
</
script
>
<
style
>
@import
url('../style/index.css')
;
</
style
>
src/packages/task-recored/src/style/index.css
0 → 100644
View file @
754e97a
/*
* Prefixed by https://autoprefixer.github.io
* PostCSS: v8.3.6,
* Autoprefixer: v10.3.1
* Browsers: >1%,last 2 versions
*/
@page
{
size
:
1190px
;
}
*
{
font-family
:
SimSun
;
}
body
,
div
,
p
{
margin
:
0
;
padding
:
0
;
line-height
:
1
;
-webkit-box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
body
{
/* background-color: #f9fafc; */
background-color
:
#fff
;
/* padding-top: 50px; */
}
.title
{
margin
:
0
auto
0
auto
;
width
:
1190px
;
font-size
:
25px
;
font-weight
:
bold
;
position
:
relative
;
/* height: 44px; */
line-height
:
44px
;
padding-left
:
12px
;
padding-top
:
50px
;
padding-bottom
:
22px
;
background-color
:
#f9fafc
;
}
.title
::before
{
content
:
''
;
width
:
5px
;
height
:
26px
;
background
:
#1989fa
;
position
:
absolute
;
left
:
0
;
top
:
59px
;
/* -webkit-transform: translateY(-50%);
transform: translateY(-50%); */
}
.block_box
{
margin
:
0
auto
;
width
:
1190px
;
padding
:
14px
14px
34px
14px
;
background-color
:
#fff
;
}
.block_box
+
.block_box
{
/* margin-top: 36px; */
border-top
:
36px
solid
#f9fafc
;
}
.bi_title
{
line-height
:
0
;
height
:
70px
;
border-bottom
:
1px
solid
#efefef
;
page-break-inside
:
avoid
;
}
.bi_title_text
{
color
:
#fff
;
-webkit-box-sizing
:
border-box
;
box-sizing
:
border-box
;
position
:
relative
;
padding-top
:
20px
;
}
.bi_title_text_content
{
height
:
33px
;
font-size
:
22px
;
position
:
relative
;
background
:
#1989fa
;
width
:
237px
;
padding-left
:
60px
;
line-height
:
33px
;
display
:
inline-block
;
vertical-align
:
top
;
}
.bi_title_text_index
{
position
:
absolute
;
width
:
35px
;
height
:
35px
;
background
:
#ffffff
;
border
:
2px
solid
#1989fa
;
border-radius
:
4px
;
font-size
:
22px
;
line-height
:
33px
;
color
:
#1989fa
;
text-align
:
center
;
left
:
16px
;
top
:
-7px
;
}
.bi_title_text_icon
{
/* position: absolute;
right: -61px;
top: 0; */
/* margin-left: -9px; */
display
:
inline-block
;
vertical-align
:
bottom
;
position
:
absolute
;
left
:
237px
;
top
:
20px
;
}
.info
{
width
:
100%
;
display
:
-webkit-box
;
display
:
-ms-flexbox
;
display
:
flex
;
-ms-flex-wrap
:
wrap
;
flex-wrap
:
wrap
;
font-size
:
1px
;
line-height
:
0
;
border-bottom
:
1px
solid
#efefef
;
overflow
:
hidden
;
}
.info-item
{
display
:
inline-block
;
font-size
:
16px
;
line-height
:
1.5
;
color
:
#6f7a91
;
padding-right
:
30px
;
/* display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex; */
word-break
:
break-all
;
padding
:
50px
0
;
/* border-top: 1px solid #efefef; */
vertical-align
:
top
;
padding-left
:
10px
;
padding-bottom
:
200px
;
margin-bottom
:
-150px
;
position
:
relative
;
}
.info-item
::after
{
content
:
''
;
width
:
9999px
;
height
:
1px
;
position
:
absolute
;
left
:
0
;
top
:
0
;
background-color
:
#efefef
;
}
.info-item
:nth-child
(
1
)
::after
,
.info-item
:nth-child
(
2
)
::after
,
.info-item
:nth-child
(
3
)
::after
{
height
:
0
;
}
.info-item.warp
{
-webkit-box-orient
:
vertical
;
-webkit-box-direction
:
normal
;
-ms-flex-direction
:
column
;
flex-direction
:
column
;
}
.info-item.warp
img
{
width
:
180px
;
height
:
180px
;
display
:
block
;
margin
:
5px
0
;
}
.info-item
>
span
:first-child
{
-ms-flex-negative
:
0
;
flex-shrink
:
0
;
}
.info-item
:nth-child
(
3n
+
1
)
{
width
:
390px
;
}
.info-item
:nth-child
(
3n
+
2
)
{
width
:
400px
;
}
.info-item
:nth-child
(
3n
+
3
)
{
-ms-flex-negative
:
1
;
flex-shrink
:
1
;
width
:
360px
;
padding-right
:
70px
;
margin-right
:
10px
;
}
.info-item
>
div
:nth-child
(
2
)
{
line-height
:
1.5
;
}
.info-item
>
div
:nth-child
(
2
)
>
img
{
height
:
265px
;
}
.question-item
{
margin-top
:
22px
;
padding
:
27px
35px
;
background
:
#f9fafc
;
page-break-inside
:
avoid
;
}
.question-item-title
{
width
:
100%
;
font-size
:
18px
;
color
:
#2a3558
;
line-height
:
30px
;
}
.question-item-title
>
div
{
background
:
#ffffff
;
border
:
1px
solid
#cecece
;
padding
:
4px
30px
4px
18px
;
font-size
:
18px
;
float
:
right
;
display
:
inline
;
margin-right
:
50px
;
width
:
400px
;
}
.question-item-option
{
font-size
:
18px
;
color
:
#2a3558
;
margin-top
:
30px
;
line-height
:
1.3
;
}
.question-item-option
+
.question-item-option
{
margin-top
:
40px
;
}
.question-item-option
::before
{
content
:
''
;
width
:
40px
;
height
:
20px
;
background-image
:
url('http://cdn.yxvzb.com/WEB/SaaS/template/images/bi-s.png?v=1')
;
background-size
:
20px
20px
;
background-repeat
:
no-repeat
;
/* border: 1px solid #707070; */
/* border-radius: 18px; */
display
:
inline-block
;
/* margin-right: 18px; */
}
.question-item-option.checkbox
::before
{
content
:
''
;
width
:
40px
;
height
:
20px
;
background-image
:
url('http://cdn.yxvzb.com/WEB/SaaS/template/images/bi-s-1.png?v=1')
;
background-size
:
20px
20px
;
background-repeat
:
no-repeat
;
/* border: 1px solid #707070; */
/* border-radius: 18px; */
display
:
inline-block
;
/* margin-right: 18px; */
}
.question-item-answer
{
font-size
:
22px
;
color
:
#2a3558
;
margin-top
:
30px
;
display
:
-webkit-box
;
display
:
-ms-flexbox
;
display
:
flex
;
-ms-flex-wrap
:
wrap
;
flex-wrap
:
wrap
;
}
.question-item-answer
img
{
-o-object-fit
:
cover
;
object-fit
:
cover
;
width
:
180px
;
height
:
180px
;
margin
:
5px
;
}
.question-item-11
{
border-bottom
:
1px
solid
#efefef
;
padding-top
:
50px
;
padding-bottom
:
50px
;
}
.question-item-11-title
{
font-size
:
20px
;
font-weight
:
bold
;
color
:
#2a3558
;
}
.question-item-11-options
{
margin-top
:
50px
;
display
:
-webkit-box
;
display
:
-ms-flexbox
;
display
:
flex
;
font-size
:
18px
;
line-height
:
1.5
;
color
:
#6f7a91
;
}
.question-item-11-options
>
div
{
-webkit-box-flex
:
1
;
-ms-flex
:
1
;
flex
:
1
;
display
:
-webkit-box
;
display
:
-ms-flexbox
;
display
:
flex
;
-webkit-box-orient
:
vertical
;
-webkit-box-direction
:
normal
;
-ms-flex-direction
:
column
;
flex-direction
:
column
;
}
.question-item-11-options
>
div
>
div
{
margin-top
:
30px
;
width
:
100%
;
display
:
-webkit-box
;
display
:
-ms-flexbox
;
display
:
flex
;
-ms-flex-wrap
:
wrap
;
flex-wrap
:
wrap
;
}
.question-item-11-options
>
div
>
div
>
img
{
width
:
180px
;
margin
:
5px
;
border
:
1px
solid
#efefef
;
}
.question-item-6
{
padding-top
:
50px
;
padding-bottom
:
0
;
}
.question-item-6-title
{
font-size
:
26px
;
color
:
#2a3558
;
}
.question-item-6-options
{
margin-top
:
60px
;
font-size
:
21px
;
color
:
#6f7a91
;
display
:
-webkit-box
;
display
:
-ms-flexbox
;
display
:
flex
;
-webkit-box-align
:
center
;
-ms-flex-align
:
center
;
align-items
:
center
;
page-break-inside
:
avoid
;
}
.question-item-6-options
>
p
{
line-height
:
1.5
;
}
.question-item-6-options
>
img
{
width
:
181px
;
height
:
181px
;
margin-right
:
39px
;
-ms-flex-negative
:
0
;
flex-shrink
:
0
;
}
.question-item-11
.info
{
border
:
none
;
padding
:
60px
0
0
0
;
}
.question-info
{
display
:
-webkit-box
;
display
:
-ms-flexbox
;
display
:
flex
;
-ms-flex-wrap
:
wrap
;
flex-wrap
:
wrap
;
}
.question-info
.info-item
{
padding-top
:
55px
;
}
.question-info
.info-item
.img-inline
{
/* display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap; */
font-size
:
12px
;
}
.question-info
.info-item
.img-inline
img
{
display
:
inline-block
;
}
.question-info
.info-item
img
{
width
:
180px
;
margin
:
5px
;
border
:
1px
solid
#efefef
;
}
.question-info
.info-item.block1
{
width
:
100%
!important
;
}
.question-info
.info-item
:nth-child
(
3n
+
1
)
{
width
:
390px
;
}
.question-info
.info-item
:nth-child
(
3n
+
2
)
{
width
:
400px
;
}
.content-title
{
display
:
-webkit-box
;
display
:
-ms-flexbox
;
display
:
flex
;
-webkit-box-pack
:
center
;
-ms-flex-pack
:
center
;
justify-content
:
center
;
text-align
:
center
;
}
.left-bar
{
line-height
:
136px
;
}
.content-title-text
{
letter-spacing
:
4px
;
margin
:
0
30px
;
font-size
:
28px
;
font-family
:
SimSun
;
font-weight
:
600
;
color
:
#000000
;
line-height
:
136px
;
}
.content-body-span
{
display
:
-webkit-box
;
display
:
-ms-flexbox
;
display
:
flex
;
-webkit-box-pack
:
justify
;
-ms-flex-pack
:
justify
;
justify-content
:
space-between
;
}
.right-bar
{
line-height
:
136px
;
}
.content-body
{
width
:
1190px
;
padding
:
11px
;
background-color
:
#ffffff
;
margin
:
0
auto
;
}
.content-body-title
{
text-align
:
left
;
font-size
:
16px
;
font-family
:
SimSun
;
font-weight
:
600
;
color
:
#333333
;
line-height
:
32px
;
}
.content-body-text
{
text-align
:
left
;
font-size
:
14px
;
font-family
:
SimSun
;
font-weight
:
400
;
color
:
#666666
;
line-height
:
28px
;
white-space
:
normal
;
word-break
:
break-all
;
word-wrap
:
break-word
;
}
.content-body-img
{
text-align
:
left
;
}
.content-body-div
{
font-family
:
SimSun
;
display
:
inline-block
;
width
:
15%
;
margin
:
0
-3px
;
height
:
50px
;
border
:
1px
solid
#000
;
line-height
:
25px
;
}
.content-body-content
{
text-align
:
left
;
font-size
:
12px
;
color
:
#666666
;
}
.content-module
{
border
:
1px
solid
rgba
(
169
,
199
,
228
,
0.19
);
padding
:
15px
;
}
.static-content-module
{
border
:
1px
solid
rgba
(
169
,
199
,
228
,
0.19
);
padding
:
8px
25px
;
}
src/tools/dateFormat.js
0 → 100644
View file @
754e97a
/*
* @Description:
* @Date: 2019-08-02 15:05:16
*/
export
default
(
date
,
fmt
=
'YYYY-MM-DD HH:mm:ss'
)
=>
{
if
(
!
date
)
{
return
''
;
}
if
(
typeof
date
===
'string'
)
{
date
=
new
Date
(
date
.
replace
(
/-/g
,
'/'
));
}
if
(
typeof
date
===
'number'
)
{
date
=
new
Date
(
date
);
}
var
o
=
{
'M+'
:
date
.
getMonth
()
+
1
,
'D+'
:
date
.
getDate
(),
'h+'
:
date
.
getHours
()
%
12
===
0
?
12
:
date
.
getHours
()
%
12
,
'H+'
:
date
.
getHours
(),
'm+'
:
date
.
getMinutes
(),
's+'
:
date
.
getSeconds
(),
'q+'
:
Math
.
floor
((
date
.
getMonth
()
+
3
)
/
3
),
S
:
date
.
getMilliseconds
()
};
var
week
=
{
'0'
:
'\u65e5'
,
'1'
:
'\u4e00'
,
'2'
:
'\u4e8c'
,
'3'
:
'\u4e09'
,
'4'
:
'\u56db'
,
'5'
:
'\u4e94'
,
'6'
:
'\u516d'
};
if
(
/
(
Y+
)
/
.
test
(
fmt
))
{
fmt
=
fmt
.
replace
(
RegExp
.
$1
,
(
date
.
getFullYear
()
+
''
).
substr
(
4
-
RegExp
.
$1
.
length
)
);
}
if
(
/
(
E+
)
/
.
test
(
fmt
))
{
fmt
=
fmt
.
replace
(
RegExp
.
$1
,
(
RegExp
.
$1
.
length
>
1
?
RegExp
.
$1
.
length
>
2
?
'\u661f\u671f'
:
'\u5468'
:
''
)
+
week
[
date
.
getDay
()
+
''
]
);
}
for
(
var
k
in
o
)
{
if
(
new
RegExp
(
'('
+
k
+
')'
).
test
(
fmt
))
{
fmt
=
fmt
.
replace
(
RegExp
.
$1
,
RegExp
.
$1
.
length
===
1
?
o
[
k
]
:
(
'00'
+
o
[
k
]).
substr
((
''
+
o
[
k
]).
length
)
);
}
}
return
fmt
;
};
src/utils/http.js
0 → 100644
View file @
754e97a
import
axios
from
'axios'
;
import
qs
from
'qs'
;
export
function
get
(
url
,
params
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
axios
.
get
(
url
,
{
params
:
params
})
.
then
(
res
=>
{
resolve
(
res
.
data
);
})
.
catch
(
err
=>
{
reject
(
err
.
data
);
});
});
}
export
function
post
(
url
,
params
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
axios
.
post
(
url
,
qs
.
stringify
(
params
))
.
then
(
res
=>
{
resolve
(
res
.
data
);
})
.
catch
(
err
=>
{
reject
(
err
.
data
);
});
});
}
webpack.config.js
View file @
754e97a
...
@@ -86,9 +86,7 @@ module.exports = {
...
@@ -86,9 +86,7 @@ module.exports = {
noInfo
:
true
,
noInfo
:
true
,
overlay
:
true
,
overlay
:
true
,
proxy
:
{
proxy
:
{
'/relaCustomer'
:
{
target
:
'https://saas-crm-wx.jimijiayuan.cn'
target
:
'http://172.28.61.8:8888/'
}
}
}
},
},
performance
:
{
performance
:
{
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment