TaskCreateBtn.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807
  1. <template>
  2. <a @click="dialogTaskOpen" class="integral-create-task-btn">
  3. <el-dialog
  4. append-to-body
  5. :title="dialogTaskTitle"
  6. :visible.sync="dialogTaskVisible"
  7. width="600px"
  8. @close="formReset"
  9. :close-on-click-modal="false"
  10. >
  11. <el-form
  12. :model="taskForm"
  13. ref="newTaskForm"
  14. :rules="taskFormRules"
  15. @submit.native.prevent
  16. style="padding-right:20px;"
  17. >
  18. <el-form-item label="任务名称" prop="name" label-width="100px">
  19. <el-input
  20. maxlength="80"
  21. placeholder="请输入任务名称"
  22. type="textarea"
  23. :value="taskForm.name"
  24. v-model="taskForm.name"
  25. ></el-input>
  26. </el-form-item>
  27. <el-form-item label="积分" prop="point" label-width="100px">
  28. <el-input-number style="width: 121px;" @change="getPoint" v-model="taskForm.point" :value="taskForm.point" :min="0" :max="10000"></el-input-number>
  29. </el-form-item>
  30. <el-form-item label="按标准评分" label-width="100px" style="margin-bottom: 0px;">
  31. <div style="width: 43px;" @click="getMessage">
  32. <el-switch
  33. :disabled="iSplay"
  34. :value="isSwitch"
  35. v-model="isSwitch"
  36. @change="chngePoint"
  37. >
  38. </el-switch>
  39. </div>
  40. </el-form-item>
  41. <div style="color:#909399;font-size: 12px;padding-left: 98px;margin: 10px 0 18px 0;">任务可根据结果对应的标准评分</div>
  42. <div v-if="isSwitch">
  43. <el-form-item label="评分标准" prop="point" label-width="100px" style="margin-bottom: 0px;">
  44. <div class="corde">
  45. <div class="cordeOne">
  46. <!-- <div class="bordeLine">{{oneCorde}}</div> -->
  47. <el-input type="number" v-model="oneCorde" :value="oneCorde"></el-input>
  48. <div>超预期</div>
  49. </div>
  50. <div class="cordeOne">
  51. <el-input type="number" v-model="twoCorde" :value="twoCorde"></el-input>
  52. <div>满意</div>
  53. </div>
  54. <div class="cordeOne">
  55. <el-input type="number" @change="changeCorde" v-model="taskForm.point" :value="taskForm.point" ></el-input>
  56. <div>合格</div>
  57. </div>
  58. <div class="cordeOne">
  59. <el-input type="number" v-model="fourCorde" :value="fourCorde"></el-input>
  60. <div>不合格</div>
  61. </div>
  62. </div>
  63. </el-form-item>
  64. <div style="padding-left: 98px;color: #909399;font-size: 12px;margin-bottom: 4px;margin-top: 4px;">系统为您推荐了各标准的积分</div>
  65. <div style="padding-left: 98px;color: #909399;font-size: 12px;margin-bottom: 20px;">如需调整系统推荐的标准积分比例,<span style="color: #26A2FF;cursor: pointer;" @click="ChangeTask()">点击设置</span></div>
  66. </div>
  67. <el-form-item
  68. label="执行者"
  69. prop="performer"
  70. label-width="100px"
  71. >
  72. <el-select
  73. v-model="performer"
  74. filterable
  75. clearable
  76. placeholder="选择执行者"
  77. class="gap-right-8 first-element-btn"
  78. @change="ChosePerson"
  79. >
  80. <el-option
  81. v-for="item in employeeOptions"
  82. :key="item.id"
  83. :label="item.name"
  84. :value="item.id"
  85. ></el-option>
  86. </el-select>
  87. </el-form-item>
  88. <el-form-item
  89. label="任务类型"
  90. prop="performer"
  91. label-width="100px"
  92. >
  93. <el-select
  94. v-model="taskForm.task_type"
  95. filterable
  96. clearable
  97. placeholder="任务类型"
  98. class="gap-right-8 first-element-btn"
  99. >
  100. <el-option
  101. v-for="item in taskType"
  102. :key="item.value"
  103. :label="item.name"
  104. :value="item.value"
  105. ></el-option>
  106. </el-select>
  107. </el-form-item>
  108. <!-- <el-form-item label="开始时间" prop="start_time" label-width="100px">
  109. <el-date-picker
  110. v-model="taskForm.start_time"
  111. type="datetime"
  112. placeholder="选择开始时间">
  113. </el-date-picker>
  114. </el-form-item> -->
  115. <el-form-item label="截止时间" prop="expiretime" label-width="100px">
  116. <el-date-picker v-model="taskForm.expiretime"
  117. type="datetime"
  118. format="yyyy-MM-dd HH:mm:ss"
  119. default-time="18:00:00"
  120. placeholder="选择截止时间"></el-date-picker>
  121. </el-form-item>
  122. <div v-if="showAll" class="showAll" @click="changeShow()">显示全部...</div>
  123. <div v-else>
  124. <el-form-item label="重复周期" prop="fixed_cycle" label-width="100px">
  125. <el-select
  126. v-model="taskForm.fixed_cycle"
  127. filterable
  128. clearable
  129. placeholder="选择重复周期"
  130. class="gap-right-8 first-element-btn"
  131. >
  132. <el-option
  133. v-for="item in fixed_cycle"
  134. :key="item.id"
  135. :label="item.type"
  136. :value="item.id"
  137. ></el-option>
  138. </el-select>
  139. </el-form-item>
  140. <el-form-item label="描述" prop="remark" label-width="100px">
  141. <el-input
  142. maxlength="80"
  143. placeholder="输入任务描述"
  144. type="textarea"
  145. :value="taskForm.remark"
  146. v-model="taskForm.remark"
  147. ></el-input>
  148. </el-form-item>
  149. <el-form-item label="附件上传" label-width="100px">
  150. <upload_oss
  151. :headers="Xtoken"
  152. class="avatar-uploader"
  153. :action="'http://'+'integralsys.oss-cn-shenzhen.aliyuncs.com'"
  154. :show-file-list="true"
  155. :file-list="taskForm.file_list"
  156. :on-success="handleFilesSuccess"
  157. :on-preview="onFilePreView"
  158. :before-upload="beforeFilesUpload"
  159. :on-remove="onFileRemove"
  160. >
  161. <el-button size="small" type="primary">点击上传</el-button>
  162. <div slot="tip" class="el-upload__tip">仅支持上传图片</div>
  163. </upload_oss>
  164. <div style="display:none;">
  165. <img
  166. v-for="(item,index) in taskForm.file_list"
  167. :key="index"
  168. v-if="(['jpg', 'png', 'bmp', 'jpeg','JPG','PNG']).indexOf(item.name.split('.')[1]) >= 0"
  169. :src="item.response.url"
  170. :preview="index"
  171. :preview-text="item.name"
  172. >
  173. </div>
  174. </el-form-item>
  175. <el-form-item
  176. label="同时分配给"
  177. prop="follow"
  178. label-width="100px"
  179. >
  180. <el-select
  181. v-model="follow"
  182. multiple
  183. filterable
  184. clearable
  185. placeholder="选择分配者"
  186. class="gap-right-8 first-element-btn"
  187. @change="ender"
  188. >
  189. <el-option
  190. v-for="item in employeeOptions"
  191. :key="item.id"
  192. :label="item.name"
  193. :value="item.id"
  194. ></el-option>
  195. </el-select>
  196. </el-form-item>
  197. </div>
  198. </el-form>
  199. <!-- </el-scrollbar> -->
  200. <span slot="footer" class="dialog-footer">
  201. <el-button @click="dialogTaskClose('newTaskForm')">取 消</el-button>
  202. <el-button type="primary" :loading="loading" @click="dialogTaskSend">确 定</el-button>
  203. </span>
  204. </el-dialog>
  205. <Scale ref="loadingPlease":iShow="iShow" @chngeShow="chngeShow" />
  206. <div class="card-panel">
  207. <div class="tpzs6"></div>
  208. <div class="card-panel-description">
  209. <div class="card-panel-text">发布任务</div>
  210. <div class="card-panel-text2">自定义任务</div>
  211. </div>
  212. </div>
  213. </a>
  214. </template>
  215. <script>
  216. import Vue from 'vue'
  217. import qs from 'qs'
  218. import { getToken } from '@/utils/auth'
  219. import preview from '@/views/dashboard/components/preview/lib/index'
  220. import Scale from '@/views/dashboard/components/Scale'
  221. import 'vue-photo-preview/dist/skin.css'
  222. import upload_oss from '@/views/upload_oss/upload'
  223. Vue.use(preview, {
  224. tapToClose: false
  225. })
  226. export default {
  227. name: 'TaskCreateBtn',
  228. components: {
  229. Scale,
  230. upload_oss
  231. },
  232. data() {
  233. const taskFormRules = {
  234. name: [
  235. { required: true, message: '请输入任务名称', trigger: 'blur' },
  236. { min: 2, max: 80, message: '长度在 2 到 80 个字符', trigger: 'blur' }
  237. ],
  238. expiretime: [
  239. { required: true, message: '请选择截止时间', trigger: 'blur' }
  240. ],
  241. // creator_id: [
  242. // { required: true, message: '请选择执行人', trigger: 'blur'}
  243. // ],
  244. point: [
  245. { required: true, message: '请设置积分', trigger: 'blur'}
  246. ],
  247. fixed_cycle: [
  248. { required: true, message: '请选择重复周期', trigger: 'blur'}
  249. ]
  250. }
  251. // if (this.taskType == 2) {
  252. // taskFormRules[follow_id] = [
  253. // { required: true, message: "请选择负责人", trigger: "blur" }
  254. // ];
  255. // }
  256. return {
  257. one: 0,
  258. two: 0,
  259. three: 0,
  260. four: 0,
  261. isSwitch: false,
  262. iSplay: true,
  263. iShow: false,
  264. showAll: true, // 显示全部
  265. loading: false,
  266. fixed_cycle: [
  267. { id: 0, type: '从不' },
  268. { id: 1, type: '每天自动分配' },
  269. { id: 2, type: '每周自动分配' },
  270. { id: 3, type: '每月自动分配' }
  271. ],
  272. taskType: '1',
  273. profile: this.$store.getters.user_info,
  274. filter: {
  275. status: [],
  276. keywords: '',
  277. time_range: ''
  278. },
  279. Xtoken: { 'X-Token': getToken() },
  280. imageUrl: '',
  281. status_list: [
  282. { text: '未领取', value: 0 },
  283. { text: '已领取', value: 1 },
  284. { text: '已完成', value: 2 },
  285. { text: '已取消', value: -1 }
  286. ],
  287. dialogTaskVisible: false,
  288. dialogTaskTitle: '发布任务',
  289. totalCount: 0,
  290. currentPage: 1,
  291. pageLimit: 10,
  292. tableData: null,
  293. dialogCreateCategoryVisible: false,
  294. dialogEditCategoryVisible: false,
  295. // taskFormApi: '/integral.php/task/add',
  296. taskFormApi: '/integral.php/task/new_add',
  297. isRequest: false,
  298. employeeOptions: [],
  299. taskType:[
  300. {name: '普通任务', value: 10},
  301. {name:'关键任务', value: 20}
  302. ],
  303. taskForm: {
  304. task_type: 10,
  305. point_level_log: [],
  306. point_type: 10,
  307. name: '', // 积分标题
  308. remark: '', // 备注
  309. expiretime: '', // 过期时间
  310. point: 0, // 奖分
  311. follow_id: [], // 执行者id+参与者id
  312. file_list: [], // 附件
  313. fixed_cycle: 0, // 重复周期
  314. // start_time:'', // 开始时间
  315. performer:[]
  316. // creator_id: '', // 执行人id
  317. },
  318. performer: [], // 执行者id
  319. follow: [], // 参与者id
  320. taskFormRules: taskFormRules,
  321. accessEnabled: {
  322. add: 0,
  323. delete: 0,
  324. edit: 0
  325. },
  326. oneCorde: 0,
  327. twoCorde: 0,
  328. threeCorde: 0,
  329. fourCorde: 0,
  330. }
  331. },
  332. methods: {
  333. changeCorde() {
  334. console.log(this.threeCorde)
  335. //this.taskForm.point = this.threeCorde;
  336. },
  337. formReset() {
  338. this.iSplay = true;
  339. this.isSwitch = false;
  340. this.taskForm.point = 0;
  341. this.dialogTaskClose();
  342. },
  343. chngeShow() {
  344. console.log("jddj")
  345. this.iShow = false;
  346. this.getLevel();
  347. setTimeout(() => {
  348. this.getPoint();
  349. }, 200)
  350. },
  351. getPoint() {
  352. console.log("从家在")
  353. if(this.taskForm.point > 0) {
  354. this.iSplay = false;
  355. // this.isSwitch = true;
  356. }else {
  357. this.iSplay = true;
  358. this.isSwitch = false;
  359. }
  360. console.log(this.one)
  361. console.log(this.two)
  362. console.log(this.three)
  363. console.log(this.four)
  364. this.oneCorde = Math.round((this.one/this.three)*this.taskForm.point);
  365. this.twoCorde = Math.round((this.two/this.three)*this.taskForm.point);
  366. this.threeCorde = this.taskForm.point;
  367. this.fourCorde = Math.round((this.four/this.three)*this.taskForm.point);
  368. console.log( (this.twoCorde ))
  369. },
  370. getMessage() {
  371. console.log("hhjhh")
  372. if(this.taskForm.point == 0) {
  373. this.$message({
  374. type: 'error',
  375. message: '请输入积分'
  376. })
  377. }
  378. },
  379. chngePoint() {
  380. console.log(this.isSwitch )
  381. if(this.taskForm.point > 0) {
  382. this.iSplay = false;
  383. // this.isSwitch = true;
  384. }else {
  385. this.iSplay = true;
  386. // this.isSwitch = false;
  387. }
  388. },
  389. ChangeTask() {
  390. // this.dialogTaskVisible = true;
  391. this.iShow = true;
  392. // this.$refs.loadingPlease.dialogTaskClose();
  393. this.$refs.loadingPlease.getCorde();
  394. },
  395. /// 设置选择执行者参与者不能重复选择
  396. ChosePerson(value) {
  397. const self = this;
  398. let array = [];
  399. array.push(value);
  400. if( self.follow.length !=0) {
  401. let chose = self.follow;
  402. let newArray = array.filter(i=>chose.indexOf(i) == -1)
  403. self.performer = newArray[0];
  404. }
  405. },
  406. ender(value) {
  407. const self = this;
  408. let choseArray = [];
  409. choseArray.push(self.performer)
  410. let array = [];
  411. array = value;
  412. if( self.performer.length !=0) {
  413. let newArray = array.filter(i=>choseArray.indexOf(i) == -1)
  414. self.follow = newArray;
  415. }
  416. },
  417. loadWidgetData: function() {
  418. var self = this
  419. const params = {
  420. id: this.profile.id,
  421. category_tree: 1,
  422. employee_list: 1
  423. }
  424. // 获取人员名单
  425. this.$http('get','/integral.php/ajax_request_common/prepare_integral_options',params)
  426. .then(function(response) {
  427. if (response.status == 200) {
  428. var jsonData = response.data
  429. try {
  430. self.employeeOptions = jsonData.employee_list
  431. } catch (err) {
  432. console.log(err)
  433. }
  434. }
  435. })
  436. .catch(function(error) {
  437. console.log(error)
  438. })
  439. },
  440. onFilePreView(file) {
  441. window.open(file.response.url)
  442. return;
  443. // 点击时查看文件
  444. const $ext_list = ['doc', 'docx', 'pptx', 'xls', 'xlsx', 'ppt', 'txt']
  445. const $ext_name = file.name.split('.')[1]
  446. if ($ext_list.indexOf($ext_name) >= 0) {
  447. // console.log(
  448. // 'https://view.officeapps.live.com/op/view.aspx?src=' +
  449. // this.serverdomain +
  450. // file.url
  451. // )
  452. // window.open(
  453. // 'https://view.officeapps.live.com/op/view.aspx?src=' +
  454. // this.serverdomain +
  455. // file.response.url,
  456. // '_blank'
  457. // )
  458. }
  459. // 点击时查看图片
  460. const $ext_list1 = ['jpg', 'png', 'bmp', 'jpeg','JPG','PNG']
  461. const $ext_name1 = file.name.split('.')[1]
  462. if ($ext_list1.indexOf($ext_name1) >= 0) {
  463. // console.log(this.serverdomain + file.response.url)
  464. let ii = 0
  465. for (const i in this.taskForm.file_list) {
  466. if (
  467. ['jpg', 'png', 'bmp', 'jpeg','JPG','PNG'].indexOf(
  468. this.taskForm.file_list[i].name.split('.')[1]
  469. ) >= 0
  470. ) {
  471. if (this.taskForm.file_list[i].name == file.name) {
  472. console.log(ii)
  473. this.openPhotoSwipe(
  474. ii,
  475. document.querySelectorAll('img[preview]')
  476. )
  477. return
  478. }
  479. ii++
  480. }
  481. }
  482. }
  483. },
  484. onFileRemove(file, fileList) {
  485. this.taskForm.file_list = fileList
  486. },
  487. handleFilesSuccess(response, file, fileList) {
  488. // this.taskForm.file_list = fileList
  489. this.$set(this.taskForm, 'file_list', fileList)
  490. },
  491. beforeFilesUpload(file) {
  492. const $ext_list = ['jpg', 'png', 'bmp', 'jpeg','PNG', 'JPG'];
  493. let len = file.name.split('.').length - 1;
  494. const $ext_name = file.name.split('.')[len]
  495. if ($ext_list.indexOf($ext_name) != -1) {
  496. const isLt20M = file.size / 1024 / 1024 < 2
  497. if (!isLt20M) {
  498. this.$message.warning('您上图片不能大于2M')
  499. return false
  500. }
  501. }else {
  502. this.$message.warning('文件格式上传错误,仅支持上传图片)')
  503. return false
  504. }
  505. },
  506. dialogTaskClose: function() {
  507. const form = this.$refs['newTaskForm']
  508. this.$refs['newTaskForm'].resetFields();
  509. form.clearValidate();
  510. this.performer = [];
  511. this.follow = [];
  512. this.dialogTaskVisible = false;
  513. this.showAll = true;
  514. this.oneCorde = '';
  515. this.twoCorde = '';
  516. this.threeCorde = '';
  517. this.fourCorde = '';
  518. this.isSwitch = false;
  519. },
  520. dialogTaskOpen: function(id) {
  521. const self = this
  522. this.dialogTaskTitle = '发布任务'
  523. this.dialogTaskVisible = true
  524. // this.taskForm = {
  525. // name: '',
  526. // remark: '',
  527. // expiretime: '',
  528. // point: 0,
  529. // follow_id: [],
  530. // // creator_id:''
  531. // }
  532. this.$nextTick(() => {
  533. const form = this.$refs['newTaskForm']
  534. console.log(form)
  535. if (typeof id === 'undefined') {
  536. form.resetFields()
  537. form.clearValidate()
  538. }
  539. })
  540. },
  541. dialogTaskSend: function() {
  542. if(this.taskForm.point == 0) {
  543. this.$message({
  544. type: 'error',
  545. message: '积分不能为0'
  546. })
  547. return;
  548. }
  549. const self = this;
  550. let site_id = self.profile.site_id; // 公司id
  551. console.log(site_id);
  552. let creator_id = self.profile.company_info.creator_id // 发布者id
  553. console.log(creator_id);
  554. this.taskForm.follow_id = this.follow.concat(self.performer);
  555. if (self.isRequest) {
  556. return
  557. }
  558. this.threeCorde = this.taskForm.point;
  559. console.log(this.isSwitch);
  560. if(this.isSwitch) {
  561. self.taskForm.point_type = 20;
  562. self.taskForm.point_level_log = [{key:40,value: this.fourCorde},{key:30,value:this.threeCorde},{key:20,value:this.twoCorde},{key:10,value:this.oneCorde}]
  563. }else {
  564. self.taskForm.point_type = 10;
  565. self.taskForm.point_level_log = [];
  566. }
  567. let newArray = [];
  568. for(var i = 0; i < self.taskForm.file_list.length; i ++) {
  569. if(self.taskForm.file_list[i].response != undefined ) {
  570. newArray.push({});
  571. newArray[i].name = self.taskForm.file_list[i].name;
  572. newArray[i].response = self.taskForm.file_list[i].response;
  573. delete newArray[i].response.extension;
  574. delete newArray[i].response.file_name;
  575. delete newArray[i].response.mime_type;
  576. delete newArray[i].response.path;
  577. delete newArray[i].response.status;
  578. }else {
  579. if(self.taskForm.file_list[i].status != undefined && self.taskForm.file_list[i].uid != undefined) {
  580. delete self.taskForm.file_list[i].status;
  581. delete self.taskForm.file_list[i].uid;
  582. }
  583. newArray.push(self.taskForm.file_list[i]);
  584. }
  585. }
  586. this.taskForm.file_list = newArray;
  587. if(self.taskForm.follow_id =='' || self.taskForm.follow_id == undefined ) {
  588. delete self.taskForm.follow_id
  589. }
  590. const form = this.$refs['newTaskForm']
  591. form.validate(valid => {
  592. if (valid) {
  593. this.loading = true
  594. this.$http('post','/integral.php/task/new_add?site_id=' +`${site_id}` +'&creator_id=' + `${creator_id}`,qs.stringify({ row: this.taskForm}),
  595. // headers: {
  596. // 'Content-Type': 'application/x-www-form-urlencoded'
  597. // }
  598. )
  599. .then(function(response) {
  600. self.loading = false
  601. setTimeout(function() {
  602. self.isRequest = false
  603. }, 200)
  604. var message = ''
  605. var status = 0
  606. if (response.status == 200) {
  607. var data = response.data
  608. message = data.msg
  609. if (data.code == 1) {
  610. self.dialogTaskClose()
  611. // self.loadTaskList()
  612. self.showAll = false;
  613. self.performer = [];
  614. self.follow = [];
  615. self.oneCorde = 0
  616. self.twoCorde = 0
  617. self.threeCorde =0
  618. self.fourCorde = 0
  619. self.taskForm.point = 0
  620. self.threeCorde = '';
  621. self.isSwitch = false;
  622. self.iSplay = true;
  623. if(self.taskForm.follow_id =='' || self.taskForm.follow_id == undefined ) {
  624. self.$message({
  625. // message: message,
  626. dangerouslyUseHTMLString: true,
  627. message: `<h3>${message}</h3>
  628. <p>您可以在任务管理→任务大厅中查看</p>
  629. `,
  630. type: 'success'
  631. })
  632. }else {
  633. self.$message({
  634. // message: message,
  635. dangerouslyUseHTMLString: true,
  636. message: `<h3>${message}</h3>
  637. <p>您可以在任务管理→我的任务→我发布的任务中查看</p>
  638. `,
  639. type: 'success'
  640. })
  641. }
  642. } else {
  643. self.$message({
  644. message: message,
  645. type: 'error'
  646. })
  647. }
  648. } else {
  649. message = '服务器太忙了'
  650. }
  651. })
  652. .catch(function(error) {
  653. console.log(error)
  654. })
  655. } else {
  656. return false
  657. }
  658. })
  659. },
  660. dateTimeFormatter: function(row, column, cellValue) {
  661. return cellValue
  662. ? this.$moment(cellValue * 1000).format('YYYY-MM-DD HH:mm:ss')
  663. : ''
  664. },
  665. getLevel() {
  666. console.log("jdfjf");
  667. this.$http('get','/integral.php/taskscorelevel/getScoreLevel')
  668. .then(res => {
  669. if(res.data.code == 1000) {
  670. let { data = {} } = res.data;
  671. this.one = data.very_satisfied;
  672. console.log( this.one)
  673. this.two = data.satisfaction;
  674. this.three = data.qualified;
  675. this.four = data.failed;
  676. }
  677. })
  678. },
  679. // 点击展开余下弹窗
  680. changeShow() {
  681. this.showAll = false;
  682. },
  683. },
  684. created() {
  685. this.getLevel();
  686. this.loadWidgetData();
  687. }
  688. }
  689. </script>
  690. <style lang="scss" scoped>
  691. .integral-create-task-btn .tpzs6 {
  692. margin: 0 auto;
  693. width: 40px;
  694. height: 40px;
  695. background-image: url(static/images/fbrw.png);
  696. background-size: 100%;
  697. }
  698. .integral-create-task-btn .card-panel-description {
  699. width: 100%;
  700. text-align: center;
  701. color: #666;
  702. }
  703. .integral-create-task-btn .card-panel-text {
  704. line-height: 40px;
  705. font-size: 20px;
  706. font-weight: bold;
  707. }
  708. .integral-create-task-btn .card-panel-text2 {
  709. font-size: 14px;
  710. line-height: 20px;
  711. color: rgba(102, 102, 102, 1);
  712. }
  713. /* 表头样式设置 */
  714. .el-form-item__label {
  715. font-size: 14px;
  716. color:#606266;
  717. text-align: right;
  718. font-weight:normal;
  719. }
  720. .showAll {
  721. color: #26A2FF;
  722. padding-left: 33px;
  723. cursor: pointer;
  724. }
  725. /deep/ .el-dialog__header {
  726. padding: 30px 0 0 41px;
  727. }
  728. /deep/ .el-dialog__header .el-dialog__title{
  729. color: #303133;
  730. font-size: 17px;
  731. font-weight: 500;
  732. }
  733. /deep/ .el-form-item__label{
  734. font-weight: normal;
  735. padding-right: 20px;
  736. }
  737. /deep/ .el-dialog__body {
  738. padding-left: 92px;
  739. }
  740. /deep/ .el-textarea {
  741. width: 290px;
  742. height: 60px;
  743. }
  744. /deep/ .el-select {
  745. width: 223px;
  746. }
  747. .corde {
  748. display: flex;
  749. flex: 1;
  750. flex-direction: row;
  751. }
  752. .cordeOne {
  753. display: flex;
  754. flex-direction: column;
  755. width: 63px;
  756. align-items: center;
  757. justify-content: center;
  758. margin-right: 12px;
  759. }
  760. .bordeLine {
  761. border: 1px solid #E4E7ED;
  762. width: 63px;
  763. height: 36px;
  764. text-align: center;
  765. }
  766. .corde /deep/ .el-input__inner::-webkit-outer-spin-button,
  767. .corde /deep/ .el-input__inner::-webkit-inner-spin-button {
  768. -webkit-appearance: none!important;
  769. appearance: none!important;
  770. }
  771. .el-dialog__close {
  772. display: none;
  773. }
  774. </style>