index.vue 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294
  1. <template>
  2. <div class="app-container home">
  3. <el-row :gutter="5">
  4. <el-col :sm="24" :lg="17" >
  5. <div class="index_heade">
  6. <img src="../assets/images/icon_more.png" alt="" class="index_headerImg">
  7. <p class="index_headetab">
  8. <span :class="[num == index ? ' spanto' : '']" v-for="(item,index) in editableTabs" :key="index" @click="tabSbu(item.dictValue)">{{item.dictLabel}}</span>
  9. </p>
  10. <div style="height: 87%;">
  11. <ul class="index_headerUl">
  12. <li v-for="(item,index) in configList" :key="index" @click="headerCld(item)">
  13. <img src="../assets/images/icon_list_sj.png" alt="">
  14. <p>{{item.notice_title}}</p>
  15. <span>{{item.create_time}}</span>
  16. </li>
  17. </ul>
  18. <div class="index_haderPagin">
  19. <el-pagination
  20. v-show="total>0"
  21. @size-change="handleSizeChange"
  22. @current-change="handleCurrentChange"
  23. :current-page.sync="currentPage3"
  24. :page-size="queryParams.pageSize"
  25. layout="prev, pager, next, jumper"
  26. :total="total">
  27. </el-pagination>
  28. <span>共 {{total}} 条 每页显示 10 条 </span>
  29. </div>
  30. </div>
  31. </div>
  32. <!-- 列表 -->
  33. <!-- <el-col :sm="24" :lg="24" style="margin-top: 20px;" >
  34. <div class="index_heade index_headeNav" v-show="true">
  35. <img src="../assets/images/icon_more.png" alt="" class="index_headerImg">
  36. <p class="index_headetab">
  37. <span :class="[numlist == index ? ' spanto' : '']" v-for="(item,index) in attendance" :key="index" @click="tabList(index)">{{item}} <p class="tab_i">3</p></span></span>
  38. </p>
  39. <div v-if="num == 0">
  40. <el-table :data="tableDataalid" style="width: 100%;margin-top: 10px;" :stripe="true" >
  41. <el-table-column label="序号" align="center" prop="noticeId" width="60" height="53" max-height="53" />
  42. <el-table-column
  43. label="申请人"
  44. align="center"
  45. prop="name"
  46. :show-overflow-tooltip="true"
  47. width="70"
  48. />
  49. <el-table-column
  50. label="部门"
  51. align="center"
  52. prop="name"
  53. width="70"
  54. />
  55. <el-table-column
  56. label="请假类型"
  57. align="center"
  58. prop="status"
  59. width="75"
  60. />
  61. <el-table-column label="请假事由" align="center" prop="createBy" width="100" :show-overflow-tooltip="true"/>
  62. <el-table-column label="请假时间" align="center" prop="date" width="150"/>
  63. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  64. <template slot-scope="scope">
  65. <el-button
  66. size="small"
  67. type="success"
  68. @click="handleUpdate(scope.row)"
  69. v-hasPermi="['system:notice:edit']"
  70. >详情</el-button>
  71. <el-button
  72. size="small"
  73. type="primary"
  74. @click="handleDelete(scope.row)"
  75. v-hasPermi="['system:notice:remove']"
  76. >同意</el-button>
  77. <el-button
  78. size="small"
  79. type="danger"
  80. @click="handleDelete(scope.row)"
  81. v-hasPermi="['system:notice:remove']"
  82. >驳回</el-button>
  83. </template>
  84. </el-table-column>
  85. </el-table>
  86. <div class="index_haderPagin">
  87. <el-pagination
  88. @size-change="handleSizeChange"
  89. @current-change="handleCurrentChange"
  90. :current-page.sync="currentPage3"
  91. :page-size="pageSize"
  92. layout="prev, pager, next, jumper"
  93. :total="1000">
  94. </el-pagination>
  95. <span>共 85 条 每页显示 5 条 当前 1/17 页</span>
  96. </div>
  97. </div>
  98. </div>
  99. </el-col> -->
  100. <!-- </el-row> -->
  101. <!-- 公司概况 -->
  102. <el-col :sm="24" :lg="24">
  103. <div class="index_heade index_headeProfile">
  104. <img src="../assets/images/icon_tjbj.png" alt="" class="index_headerImg">
  105. <p class="index_headetab">
  106. <span :class="[numprofile == index ? ' spanto' : '']" v-for="(item,index) in editableTabsteo" :key="index" @click="tabSbuprofile(item.dictValue)">{{item.dictLabel}} </span>
  107. </p>
  108. <!-- <el-tabs v-model="activeName" @tab-click="handleClick">
  109. <el-tab-pane label="用户管理" name="first"> -->
  110. <div style="height: 84%;">
  111. <div style="height: 85%;">
  112. <h3 style="text-align: center; margin: 35px 0;">{{tieku}}</h3>
  113. <p class="index_profilep" > {{comg}} </p>
  114. </div>
  115. <!-- {{getLisprofileone[0].info_content}} -->
  116. <div class="index_haderPagin">
  117. <el-pagination
  118. @size-change="handleSizeChangeprofile"
  119. @current-change="handleCurrentChangeprofile"
  120. :current-page.sync="currentPage3"
  121. :page-size="queryParamstabprofile.pageSize"
  122. layout="prev, pager, next, jumper"
  123. :total="totalprofile">
  124. </el-pagination>
  125. <span>共 {{totalprofile}} 条 每页显示 1条 </span>
  126. </div>
  127. </div>
  128. </div>
  129. </el-col>
  130. </el-col>
  131. <el-col :sm="24" :lg="7" style="padding-left: 15px">
  132. <div class="index_nav">
  133. <div class="index_navTime">
  134. <p class="index_navTimep" @click="handleAdd">
  135. <span>日程</span>
  136. <span><i class="el-icon-date" ></i>创建日程</span>
  137. </p>
  138. <el-calendar id="calendar">
  139. <!-- 这里使用的是 2.5 slot 语法,对于新项目请使用 2.6 slot 语法-->
  140. <template
  141. slot="dateCell"
  142. slot-scope="{date, data}">
  143. <!--自定义内容-->
  144. <div>
  145. <div class="calendar-day" style="text-align: center">
  146. <el-tooltip v-if="brightDate.indexOf(data.day) != -1" class="item" effect="dark" :content="content(data.day)" placement="right">
  147. <span class="everyDay">{{ data.day.split('-').slice(2).join('-') }}</span>
  148. </el-tooltip>
  149. <span v-else>{{ data.day.split('-').slice(2).join('-') }}</span>
  150. <!-- <p :class="data.isSelected ? 'is-selected' : ''">
  151. {{ data.day.split('-').slice(1).join('-') }} {{ data.isSelected ? '✔️' : ''}}
  152. </p> -->
  153. </div>
  154. </div>
  155. </template>
  156. </el-calendar>
  157. <img src="../assets/images/pic_kpbg.png" alt="" class="index_navTimeimg">
  158. </div>
  159. </div>
  160. <!-- 备忘录 -->
  161. <el-col :sm="24" :lg="24" >
  162. <div class="index_nav index_memoranduNnavTime">
  163. <div class="index_navTime ">
  164. <p class="index_navTimep">
  165. <span>备忘录</span>
  166. <span @click="memoere"><i class="el-icon-date"></i>创建备忘录</span>
  167. </p>
  168. <ul >
  169. <li v-for="(item,index) in getmemorandum" :key="index" >
  170. <p>{{item.memorandum_title}}
  171. </p>
  172. <div class="index_navspande">
  173. <span>
  174. {{item.remind_time}}
  175. </span>
  176. <img src="../assets/images/deletety.png" alt="" v-if="shower" @click="index_deledetfe(item.id)">
  177. </div>
  178. </li>
  179. </ul>
  180. <img src="../assets/images/icon_more.png" alt="" class="imjud">
  181. <!-- <el-calendar v-model="value">
  182. </el-calendar> -->
  183. <img src="../assets/images/pic_kpbg.png" alt="" class="index_navTimeimg">
  184. </div>
  185. </div>
  186. </el-col >
  187. <!-- 通讯录 -->
  188. <el-col :sm="24" :lg="24">
  189. <div class="index_nav index_memoranduMail">
  190. <div class="index_navTime ">
  191. <p class="index_navTimep">
  192. <span>通讯录</span>
  193. <img src="../assets/images/icon_more.png" alt="" class="index_navTimeimgtwo">
  194. <!-- <span><i class="el-icon-date"></i>创建日程</span> -->
  195. </p>
  196. <div class="index_memoranduMailnav">
  197. <div class="tab_tol">
  198. <el-table stripe v-loading="loading" :data="postList.rows" @selection-change="handleSelectionChange">
  199. <el-table-column :label="item.columnComment" align="center" :prop="item.columnName" v-for="(item,index) in postList.tableHeadList" :key="index" />
  200. </el-table>
  201. </div>
  202. <div class="index_haderPagin index_haderPaginfoiu">
  203. <el-pagination
  204. @size-change="handleSizeChangeali"
  205. @current-change="handleCurrentChangeali"
  206. :current-page.sync="currentPage3"
  207. :page-size="queryParamsail.pageSize"
  208. :small= "true"
  209. layout="prev, pager, next, jumper"
  210. :total="totalali">
  211. </el-pagination>
  212. </div>
  213. </div>
  214. <img src="../assets/images/pic_kpbg.png" alt="" class="index_navTimeimg">
  215. </div>
  216. </div>
  217. </el-col>
  218. </el-col>
  219. </el-row>
  220. <!-- <el-divider /> -->
  221. <!-- 添加或修改公告对话框 -->
  222. <el-dialog :close-on-click-modal="false" :title="title" :visible.sync="open" width="980px" append-to-body>
  223. <el-form ref="form" :model="form" :rules="rules" label-width="160px" class="from_index">
  224. <el-row>
  225. <el-col :span="24" >
  226. <dynamic-forms :ref="item.columnName" :config="form.fixedData" @inputs = "changeFn" :formConfig="item" v-for="(item,index) in queryData.showData" :key='index' />
  227. </el-col>
  228. </el-row>
  229. </el-form>
  230. <div slot="footer" class="dialog-footer">
  231. <el-button type="primary" @click="handleQuery">确 定</el-button>
  232. <el-button @click="cancel">取 消</el-button>
  233. </div>
  234. </el-dialog>
  235. <!-- 通知公告弹窗 -->
  236. <el-dialog :close-on-click-modal="false" :title="title" :visible.sync="openety" width="980px" append-to-body>
  237. <div class="index_headertan" >
  238. <p>{{actingk.notice_title == undefined? '暂无数据' : actingk.notice_title}}</p>
  239. <p>{{actingk.create_time == undefined? '暂无数据' : actingk.create_time}} 发布人:{{actingk.create_by}}</p>
  240. <p v-html="actingk.notice_content"></p>
  241. </div>
  242. </el-dialog>
  243. </div>
  244. </template>
  245. <script>
  246. import { listIndex, getUserProfile, listIndextwo, listIndextherr, listIndexfou, listIndextanl, getConfig, delConfig, addConfig, addConfigindex, updateConfig, clearCache, delIndexnabd,listIndexber } from "@/api/system/config";
  247. import Editor from '@/components/Editor';
  248. export default {
  249. name: "index",
  250. components: {
  251. Editor
  252. },
  253. data() {
  254. return {
  255. // 版本号
  256. version: "2.5.0",
  257. currentPage3: 1,
  258. total:0,
  259. totalprofile:0,
  260. totalali:0,
  261. pageSize:6,
  262. activeName: 'second',
  263. // 是否显示弹出层
  264. open: false,
  265. // 弹出层标题
  266. title: "",
  267. value: new Date(),
  268. editableTabs: [],
  269. attendance:['待我审批','已办理','我的流程','驳回审批'],
  270. editableTabsteo:[],
  271. configList:[],
  272. queryParams:{
  273. table:'sys_notice',
  274. orderBy:'create_time desc',
  275. pageNo:1,
  276. pageSize:10,
  277. fixedData:{
  278. condition:{
  279. notice_type:1,
  280. status:0
  281. }
  282. }
  283. },
  284. queryParamstab:{
  285. table:'sys_notice',
  286. orderBy:'create_time desc',
  287. pageNo:1,
  288. pageSize:6,
  289. condition:{
  290. notice_type:1
  291. }
  292. },
  293. // 公司概况
  294. queryParamstabprofile:{
  295. table:'sys_info',
  296. orderBy:'create_time desc',
  297. pageNo:1,
  298. pageSize:1,
  299. fixedData:{
  300. condition:{
  301. info_type:1
  302. }
  303. }
  304. },
  305. // 日历
  306. queryParamscalendar:{
  307. table:'sys_schedule',
  308. orderBy:'create_time desc',
  309. pageNo:1,
  310. pageSize:10,
  311. fixedData:{
  312. condition:{
  313. create_by:''
  314. }
  315. }
  316. },
  317. // 备忘录
  318. queryParamstabmemorandum:{
  319. table:'sys_memorandum',
  320. orderBy:'create_time desc',
  321. pageNo:1,
  322. pageSize:6,
  323. fixedData:{
  324. condition:{
  325. create_by:''
  326. }
  327. }
  328. },
  329. // 通讯录
  330. queryParamsail:{
  331. table:'sys_contacts',
  332. orderBy:'create_time desc',
  333. pageNo:1,
  334. pageSize:6,
  335. },
  336. num:0,
  337. numlist:0,
  338. numprofile:0,
  339. dictType:'sys_notice_type',
  340. // 公司概况
  341. dictTypetwo:'sys_describe_type',
  342. gettabList:[],
  343. getLisprofileone:[],
  344. // 备忘录
  345. getmemorandum:[],
  346. //通讯录参数
  347. aliemg:{
  348. table:'sys_contacts',
  349. orderBy:'create_time desc',
  350. pageNo:1,
  351. pageSize:6,
  352. },
  353. tableDataalid:[],
  354. getLisaillie:[],
  355. alendarList:[],
  356. calendarData: [
  357. ],
  358. ary:[],
  359. tieku:'',
  360. comg:'',
  361. aekti:'',
  362. // 弹框数据
  363. form:{
  364. },
  365. // 表单校验
  366. rules: {
  367. },
  368. //日历弹框
  369. calendaradd:{
  370. table:'sys_schedule',
  371. isUi:false,
  372. fixedData:{
  373. id:-1
  374. }
  375. },
  376. //备忘录弹框
  377. calendaraddmer:{
  378. table:'sys_memorandum',
  379. isUi:false,
  380. fixedData:{
  381. id:-1
  382. }
  383. },
  384. // input
  385. inputList:[],
  386. // 时间
  387. dataList:[],
  388. //单选框
  389. radiolist:[],
  390. // 复选框
  391. chekbosList:[],
  392. //下拉框
  393. selectList:[],
  394. editorList:[],
  395. queryData: {},
  396. queryDatatwo:{},
  397. nummer:0 ,//0 是日历 1 是备忘录
  398. forme:{
  399. table:'',
  400. objId:-1,
  401. fixedData:{}
  402. },
  403. rjtu:[],
  404. truew:[],
  405. fales:[],
  406. postList:{},
  407. arr:'2,2,3,3,4,4',
  408. // 删除参数
  409. deledlid:{
  410. table:'sys_memorandum',
  411. idList:[],
  412. user: {
  413. oldPassword: undefined,
  414. newPassword: undefined,
  415. confirmPassword: undefined
  416. },
  417. shower:true, //判断删除图标是否显示
  418. },
  419. titlees:'通知公告',//通知公告弹框
  420. openety:false,
  421. actingk:{}
  422. };
  423. },
  424. created() {
  425. // console.log(this.user)
  426. this.unique(this.arr)
  427. this.getList()
  428. this.getListtab()
  429. this.getLiser()
  430. this.getLisprofile()
  431. // 用户信息
  432. this.getUser()
  433. // this.getLismemorandum() //备忘录
  434. this.getLisail()//通讯录
  435. this.getLisailtwo()
  436. },
  437. computed: {
  438. // 时间高亮的数组
  439. brightDate () {
  440. // let ary = []
  441. var that = this
  442. if(that.calendarData.length !==null){
  443. for (var i = 0 ; i < that.calendarData.length; i++) {
  444. that.calendarData[i].love="yu"
  445. if(that.calendarData[i].remind_time !== undefined){
  446. that.ary.push(that.calendarData[i].remind_time)
  447. }
  448. }
  449. }
  450. console.log(that.ary)
  451. return that.ary
  452. }
  453. },
  454. methods: {
  455. // Tooltip 文字提示
  456. content (date) {
  457. console.log(date,37645)
  458. let data = date
  459. let datase = date
  460. let content = ''
  461. let conert = ''
  462. let conertre = ''
  463. let nujue= 0
  464. console.log(this.calendarData)
  465. for (var i = 0 ; i < this.calendarData.length; i++) {
  466. if(this.calendarData[i].schedule_content !== undefined){
  467. this.calendarData[i].schedule_content = this.calendarData[i].schedule_content.replace(/<\/?[^>]*>/g, '')
  468. }
  469. if(data == this.calendarData[i].remind_time){
  470. console.log(content,this.calendarData[i].schedule_content)
  471. if(content == this.calendarData[i].schedule_content + '、'){
  472. content = content
  473. }else{
  474. content = content + this.calendarData[i].schedule_content + '、'
  475. }
  476. }
  477. }
  478. return content
  479. },
  480. //数据 第一部分列表
  481. getList() {
  482. this.loading = true;
  483. this.configList = []
  484. listIndex(this.queryParams).then(response => {
  485. if(response.data.rows !== null){
  486. this.configList = response.data.rows;
  487. }else {
  488. this.configList.push({notice_title: "暂无数据"});
  489. }
  490. console.log(this.configList)
  491. this.total = response.data.total;
  492. this.loading = false;
  493. }
  494. );
  495. },
  496. //数据 第二部分列表
  497. getListtabone() {
  498. this.loading = true;
  499. listIndex(this.queryParams).then(response => {
  500. this.configList = response.data.rows;
  501. console.log(this.configList)
  502. this.total = response.data.total;
  503. this.loading = false;
  504. }
  505. );
  506. },
  507. //数据 第三部分列表
  508. getLisprofile() {
  509. // this.loading = true;
  510. listIndexber(this.queryParamstabprofile).then(response => {
  511. if(response.data !== undefined){
  512. this.getLisprofileone = response.data.rows;
  513. if(response.data.rows !== null){
  514. this.tieku = this.getLisprofileone[0].info_title
  515. this.comg = this.getLisprofileone[0].info_content
  516. }else {
  517. this.tieku = '暂无数据'
  518. this.comg = '暂无数据'
  519. }
  520. // console.log(this.getLisprofileone[0].info_title,98)
  521. this.totalprofile = response.data.total;
  522. }
  523. this.loading = false;
  524. }
  525. );
  526. },
  527. //数据 日历数据列表
  528. getLisalendar() {
  529. this.loading = true;
  530. this.queryParamscalendar.fixedData.condition.create_by = this.user.userName
  531. listIndex(this.queryParamscalendar).then(response => {
  532. if(response.data !== undefined){
  533. this.calendarData = response.data.rows;
  534. console.log(this.calendarData,9845765)
  535. }
  536. this.loading = false;
  537. }
  538. );
  539. },
  540. //数据 备忘录数据列表
  541. getLismemorandum() {
  542. this.loading = true;
  543. this.getmemorandum = []
  544. this.queryParamstabmemorandum.fixedData.condition.create_by = this.user.userName
  545. listIndex(this.queryParamstabmemorandum).then(response => {
  546. if(response.data !== undefined){
  547. if(response.data.rows !== null){
  548. this.shower = true
  549. this.getmemorandum = response.data.rows;
  550. }else{
  551. this.shower = false
  552. this.getmemorandum.push({memorandum_title:'暂无数据',shower:false})
  553. }
  554. console.log(this.getmemorandum,98765)
  555. }
  556. this.loading = false;
  557. }
  558. );
  559. },
  560. // 数据列表 通讯录数据
  561. getLisailtwo() {
  562. this.loading = true;
  563. listIndex(this.queryParamsail).then(response => {
  564. if(response.data !== undefined){
  565. this.getLisaillie = response.data.rows;
  566. // console.log(this.configList)
  567. }
  568. this.totalali = response.data.total
  569. this.loading = false;
  570. }
  571. );
  572. },
  573. //tab 公告 栏数据
  574. getListtab() {
  575. this.loading = true;
  576. listIndextwo(this.dictType).then(response => {
  577. this.editableTabs = response.data;
  578. this.queryParams.dictType = response.data[1].dictType
  579. console.log(this.editableTabs)
  580. // this.total = response.total;
  581. this.loading = false;
  582. }
  583. )
  584. },
  585. // 公司概况 tab
  586. getLiser() {
  587. this.loading = true;
  588. listIndextherr(this.dictTypetwo).then(response => {
  589. this.editableTabsteo = response.data;
  590. console.log(this.editableTabsteo)
  591. // this.total = response.total;
  592. this.loading = false;
  593. }
  594. )
  595. },
  596. // 通讯录表头
  597. getLisail() {
  598. this.loading = true;
  599. listIndexfou(this.aliemg).then(response => {
  600. if(response.data !== undefined){
  601. this.tableDataalid = response.data.tableHeadList;
  602. this.postList = response.data
  603. this.postList.rows.filter(route => {
  604. // route.dept_id = route.dept_id.value
  605. for(var item in route){
  606. if(typeof route[item] == 'object'){
  607. route[item]= route[item].value
  608. }
  609. }
  610. })
  611. console.log(this.tableDataalid,67)
  612. this.totalprofile = response.data.total;
  613. }
  614. this.loading = false;
  615. }
  616. );
  617. },
  618. //日历新增弹框数据
  619. getLisalendaraddd() {
  620. this.loading = true;
  621. this.queryData = []
  622. listIndextanl(this.calendaradd).then(response => {
  623. if(response.data !== undefined){
  624. this.queryData = response.data
  625. // console.log(this.selectList)
  626. }
  627. this.loading = false;
  628. }
  629. );
  630. },
  631. //备忘录新增弹框数据
  632. getLisalendaradddmer() {
  633. this.loading = true;
  634. this.queryData = []
  635. listIndextanl(this.calendaraddmer).then(response => {
  636. if(response.data !== undefined){
  637. this.queryData = response.data
  638. // console.log(this.selectList)
  639. }
  640. this.loading = false;
  641. }
  642. );
  643. },
  644. goTarget(href) {
  645. window.open(href, "_blank");
  646. },
  647. handleSizeChange(val) {
  648. console.log(`每页 ${val} 条`);
  649. },
  650. handleCurrentChange(val) {
  651. this.queryParams.pageNo = val
  652. this.getList()
  653. console.log(`当前页: ${val}`);
  654. },
  655. // 公司概况
  656. handleSizeChangeprofile(val) {
  657. console.log(`每页 ${val} 条`);
  658. },
  659. handleCurrentChangeprofile(val) {
  660. this.queryParamstabprofile.pageNo = val
  661. this.getLisprofile()
  662. console.log(`当前页: ${val}`);
  663. },
  664. // 通讯录
  665. handleSizeChangeali(val) {
  666. console.log(`每页 ${val} 条`);
  667. },
  668. handleCurrentChangeali(val) {
  669. this.queryParamsail.pageNo = val
  670. this.getLisailtwo()
  671. console.log(`当前页: ${val}`);
  672. },
  673. handleClick(tab, event) {
  674. console.log(tab, event);
  675. },
  676. // 第一部分tab点击
  677. tabSbu(index){
  678. console.log(index)
  679. this.num = index - 1
  680. this.queryParams.fixedData.condition.notice_type = index
  681. this.getList()
  682. },
  683. // 第二部分tab点击numlist
  684. tabList(index){
  685. this.numlist = index
  686. },
  687. // 第三部分tab点击
  688. tabSbuprofile(index){
  689. this.numprofile = index - 1
  690. this.queryParamstabprofile.fixedData.condition.info_type = index
  691. this.getLisprofile()
  692. },
  693. // 表单重置
  694. reset() {
  695. this.form ={
  696. },
  697. this.resetForm("form");
  698. },
  699. // 取消按钮
  700. cancel() {
  701. this.open = false;
  702. this.openety = false
  703. this.reset();
  704. },
  705. /** 新增按钮操作 */
  706. handleAdd() {
  707. this.nummer = 0
  708. console.log(this.open)
  709. this.reset();
  710. this.form ={
  711. }
  712. this.getLisalendaraddd()
  713. this.open = true;
  714. this.title = "添加日程";
  715. },
  716. /** 提交按钮操作 */
  717. handleQuery() {
  718. for(let item of this.queryData.showData){
  719. if(item.htmlType == 'checkbox' || item.htmlType == 'imageUpload' || item.htmlType == 'fileUpload'){
  720. this.form[item.columnName] = this.$refs[item.columnName][0].config
  721. } else{
  722. this.form[item.columnName] = this.$refs[item.columnName][0].config[item.columnName]
  723. }
  724. }
  725. // this.forme = this.form
  726. if(this.nummer == 0){
  727. this.forme.table = 'sys_schedule'
  728. this.forme.objId = -1
  729. this.forme.fixedData = this.form
  730. // if(this.forme.fixedData.remind_type !== undefined){
  731. // this.forme.fixedData.remind_type = this.forme.fixedData.remind_type.join(',');
  732. // }
  733. //日历
  734. console.log(this.forme.fixedData,this.forme)
  735. addConfigindex(this.forme).then(response => {
  736. this.msgSuccess("新增成功");
  737. // this.open = false;
  738. this.getLisalendar()
  739. this.cancel();
  740. });
  741. }else if(this.nummer == 1){
  742. // this.form.table = 'sys_memorandum'
  743. this.forme.table = 'sys_memorandum'
  744. this.forme.objId = -1
  745. this.forme.fixedData = this.form
  746. //备忘录
  747. addConfigindex(this.forme).then(response => {
  748. this.msgSuccess("新增成功");
  749. // this.open = false;
  750. this.getLismemorandum()
  751. this.cancel();
  752. });
  753. }
  754. console.log(this.form.fixedData,22311)
  755. // this.getList();
  756. },
  757. // 弹框
  758. changeFn(obj) {
  759. console.log(obj)
  760. for(let key in obj){
  761. this.form.fixedData[key] = obj[key]
  762. }
  763. },
  764. // 新增备忘录
  765. memoere(){
  766. this.nummer = 1
  767. this.open = true;
  768. this.title = "添加备忘录";
  769. this.getLisalendaradddmer()
  770. },
  771. // 备忘录删除
  772. index_deledetfe(id){
  773. var that = this
  774. that.deledlid.idList = []
  775. that.deledlid.idList.push(id)
  776. this.$confirm('是否确认删除', "警告", {
  777. confirmButtonText: "确定",
  778. cancelButtonText: "取消",
  779. type: "warning"
  780. }).then(function() {
  781. return delIndexnabd(that.deledlid);
  782. }).then(() => {
  783. this.getLismemorandum();
  784. this.msgSuccess("删除成功");
  785. // this.$router.go(-1)
  786. })
  787. },
  788. handleSelectionChange() {
  789. },
  790. // 字符串去重
  791. unique(arr) {
  792. let arfe = []
  793. let serfgt = []
  794. arfe = arr.split(',')
  795. for(var i = 0 ; i < arfe.length; i++){
  796. if (serfgt.indexOf(arfe[i]) === -1) {
  797. serfgt.push(arfe[i])
  798. }
  799. }
  800. console.log(serfgt.join(','))
  801. // const res = new Map();
  802. // console.log(arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1)))
  803. // return arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1));
  804. },
  805. getUser() {
  806. getUserProfile().then(response => {
  807. this.user = response.data;
  808. this.getLisalendar()
  809. this.getLismemorandum()
  810. console.log(this.user,97653)
  811. });
  812. },
  813. // 通知公告弹窗
  814. headerCld(index){
  815. this.title = '通知公告'
  816. this.openety = true,
  817. this.actingk=index
  818. }
  819. },
  820. };
  821. </script>
  822. <style lang="scss">
  823. .home{
  824. .el-tabs__header{
  825. margin-bottom: 5px !important;
  826. }
  827. .el-calendar-table tr td:first-child{
  828. border: 0 !important;
  829. }
  830. .el-calendar-table tr:first-child td{
  831. border: 0 !important;
  832. }
  833. .el-calendar-table td{
  834. border: 0 !important;
  835. }
  836. .el-calendar-table .el-calendar-day{
  837. height: 30px;
  838. text-align: center;
  839. line-height: 30px;
  840. border-radius: 30px;
  841. padding: 0;
  842. // background-color: #0B18E8;
  843. }
  844. .el-calendar-table td.is-selected{
  845. // background-color: #0B18E8;
  846. border-radius: 30px;
  847. }
  848. .el-calendar__header{
  849. border: 0;
  850. padding: 0 20px;
  851. }
  852. .el-calendar__body{
  853. padding-top: 0;
  854. padding-bottom: 0;
  855. }
  856. .el-pagination{
  857. padding-left: 0;
  858. }
  859. .index_headeNav{
  860. .el-tabs__item{
  861. position: relative;
  862. }
  863. }
  864. .el-table th.is-leaf, .el-table td{
  865. border: 0 !important;
  866. }
  867. .el-calendar__title{
  868. font-size: 12px;
  869. }
  870. .el-table td{
  871. padding: 6px 0;
  872. }
  873. .index_haderPaginfoiu{
  874. .el-pagination__jump{
  875. display: block !important;
  876. text-align: center;
  877. margin-left: 0;
  878. }
  879. }
  880. .everyDay {
  881. display: inline-block;
  882. width: 20px;
  883. height: 20px;
  884. line-height: 20px;
  885. background-color: #409eff;
  886. color: #fff;
  887. border-radius: 50%;
  888. margin-top: 5px;
  889. }
  890. }
  891. </style>
  892. <style scoped lang="scss">
  893. .home {
  894. // tab
  895. .index_headetab{
  896. display: flex;
  897. border-bottom: 1px solid #E5E5E5;
  898. height: 65px;
  899. padding-top: 10px;
  900. padding-bottom: 10px;
  901. span{
  902. cursor:pointer;
  903. width: 70px;
  904. text-align: center;
  905. line-height: 55px;
  906. height: 55px;
  907. font-size: 15px;
  908. font-family: PingFang SC;
  909. font-weight: bold;
  910. color: #666;
  911. position: relative;
  912. // flex: 1;
  913. // border-bottom: ;
  914. }
  915. .span{
  916. content: '';
  917. display: block;
  918. width: 18px;
  919. height: 8px;
  920. border-radius: 3px;
  921. background-color: #3C8DBC;
  922. color: #3C8DBC !important;
  923. // position: absolute;
  924. // border-bottom: ;
  925. }
  926. .spanto{
  927. color:#3C8DBC ;
  928. border-bottom: 3px solid #3C8DBC;
  929. }
  930. }
  931. p{
  932. margin: 0;
  933. }
  934. ul{
  935. margin: 0;
  936. padding: 0;
  937. }
  938. background-color: #eef0ff;
  939. blockquote {
  940. padding: 10px 20px;
  941. margin: 0 0 20px;
  942. font-size: 17.5px;
  943. border-left: 5px solid #eee;
  944. }
  945. .index_heade{
  946. // border: 1px solid #eee;
  947. // width: 100%;
  948. padding: 0 20px;
  949. height: 570px;
  950. background-color: #fff;
  951. position: relative;
  952. border-radius: 6px;
  953. .index_headerImg{
  954. width: 23px;
  955. height: 6px;
  956. position: absolute;
  957. right: 20px;
  958. top:32px;
  959. }
  960. .index_headerUl{
  961. width: 100%;
  962. padding: 0;
  963. margin: 0;
  964. height: 85%;
  965. li{
  966. margin: 0;
  967. display: flex;
  968. justify-content: space-between;
  969. align-items: center;
  970. height: 43px;
  971. cursor:pointer;
  972. img{
  973. width: 11px;
  974. height: 13px;
  975. }
  976. p{
  977. font-size: 14px;
  978. font-family: PingFang SC;
  979. font-weight: 400;
  980. color: #343434;
  981. line-height: 36px;
  982. margin: 0;
  983. text-align: left;
  984. flex: 1;
  985. padding: 0 18px;
  986. }
  987. span{
  988. font-size: 14px;
  989. font-family: PingFang SC;
  990. font-weight: 400;
  991. color: #343434;
  992. line-height: 36px;
  993. }
  994. }
  995. }
  996. .index_haderPagin{
  997. display: flex;
  998. justify-content: space-between;
  999. align-items: center;
  1000. margin-top: 30px;
  1001. span{
  1002. flex: 1;
  1003. font-size: 12px;
  1004. font-family: PingFang SC;
  1005. font-weight: 400;
  1006. color: #343434;
  1007. text-align: right;
  1008. // line-height: 36px;
  1009. }
  1010. }
  1011. }
  1012. //表格样式
  1013. .index_headeNav{
  1014. padding: 0 20px;
  1015. height: 550px;
  1016. background-color: #fff;
  1017. position: relative;
  1018. border-radius: 6px;
  1019. .tab_i{
  1020. position: absolute;
  1021. right: 1px;
  1022. top:5px;
  1023. border-radius: 50%;
  1024. // display: block;
  1025. width: 15px ;
  1026. height: 15px;
  1027. line-height: 15px;
  1028. text-align: center;
  1029. color: #fff;
  1030. background-color: red;
  1031. overflow:hidden; //超出的文本隐藏
  1032. text-overflow:ellipsis; //溢出用省略号显示
  1033. white-space:nowrap; //溢出不换行
  1034. font-size: 11px;
  1035. font-family: PingFang SC;
  1036. font-weight: bold;
  1037. }
  1038. }
  1039. .index_nav{
  1040. // border: 1px solid #eee;
  1041. background-color: #fff;
  1042. height: 315px;
  1043. box-shadow: 0px 4px 4px 0px rgba(130, 150, 162, 0.64);
  1044. border-radius: 6px;
  1045. .index_navTime{
  1046. height: 270px;
  1047. position: relative;
  1048. }
  1049. .index_navTimeimg{
  1050. height: 47px;
  1051. width: 100%;
  1052. position: absolute;
  1053. bottom: -76px;
  1054. left: 0;
  1055. }
  1056. .index_navTimep{
  1057. padding: 10px 0;
  1058. margin: 0 20px;
  1059. margin-bottom: 10px;
  1060. border-bottom: 1px solid #E5E5E5;
  1061. display: flex;
  1062. justify-content: space-between;
  1063. align-items: center;
  1064. span:nth-child(1){
  1065. font-size: 15px;
  1066. font-family: PingFang SC;
  1067. font-weight: bold;
  1068. color: #3C8DBC;
  1069. }
  1070. span:nth-child(1)::before{
  1071. content: "";
  1072. display: block;
  1073. width: 18px;
  1074. height: 8px;
  1075. background: #3C8DBC;
  1076. border-radius: 3px;
  1077. }
  1078. span:nth-child(2){
  1079. font-size: 12px;
  1080. font-family: PingFang SC;
  1081. font-weight: 400;
  1082. color: #3C8DBC;
  1083. cursor:pointer;
  1084. }
  1085. }
  1086. }
  1087. // 公司概况样式
  1088. .index_headeProfile{
  1089. margin-top: 40px;
  1090. margin-bottom: 20px;
  1091. height: 590px;
  1092. .index_profilep{
  1093. font-size: 12px;
  1094. font-family: PingFang SC;
  1095. font-weight: bold;
  1096. color: #343434;
  1097. line-height: 27px;
  1098. }
  1099. .index_haderPagin{
  1100. margin-top: 25px;
  1101. }
  1102. .index_headerImg{
  1103. width: 21px;
  1104. height: 21px;
  1105. top:19px;
  1106. }
  1107. }
  1108. // 备忘录样式
  1109. .index_memoranduNnavTime{
  1110. height: 335px;
  1111. margin-top: 90px;
  1112. position: relative;
  1113. .index_navTimep{
  1114. padding: 20px 0;
  1115. // margin-bottom: 20px;
  1116. }
  1117. .index_navTimeimg{
  1118. height: 47px;
  1119. width: 100%;
  1120. position: absolute;
  1121. bottom: -76px;
  1122. left: 0;
  1123. bottom: -96px;
  1124. }
  1125. .imjud{
  1126. width: 23px;
  1127. height: 6px;
  1128. position: absolute;
  1129. right: 20px;
  1130. bottom: -50px;
  1131. }
  1132. ul{
  1133. padding: 0 20px;
  1134. li{
  1135. display: flex;
  1136. justify-content: space-between;
  1137. align-items: center;
  1138. border-bottom: 1px dashed #E5E5E5;
  1139. p{
  1140. font-size: 12px;
  1141. font-family: PingFang SC;
  1142. font-weight: 400;
  1143. color: #343434;
  1144. line-height: 36px;
  1145. flex: 1;
  1146. }
  1147. .index_navspande{
  1148. display: flex;
  1149. justify-content: space-between;
  1150. align-items: center;
  1151. span{
  1152. font-size: 12px;
  1153. font-family: PingFang SC;
  1154. font-weight: 400;
  1155. color: #343434;
  1156. line-height: 36px;
  1157. flex: 1;
  1158. }
  1159. img{
  1160. width: 16px;
  1161. height: 16px;
  1162. margin-left: 5px;
  1163. cursor: pointer;
  1164. }
  1165. }
  1166. }
  1167. }
  1168. }
  1169. //通讯录样式
  1170. .index_memoranduMail{
  1171. height: 363px;
  1172. margin-top: 100px;
  1173. .index_navTimeimgtwo{
  1174. width: 23px;
  1175. height: 6px;
  1176. }
  1177. .index_navTimep{
  1178. padding: 20px 0;
  1179. }
  1180. .index_memoranduMailnav{
  1181. padding: 0 20px;
  1182. height: 90%;
  1183. }
  1184. .index_navTimeimg{
  1185. height: 47px;
  1186. width: 100%;
  1187. position: absolute;
  1188. bottom: -76px;
  1189. left: 0;
  1190. bottom: -126px;
  1191. }
  1192. .index_haderPagin{
  1193. margin-top: 10px;
  1194. }
  1195. }
  1196. }
  1197. // table
  1198. .tab_tol{
  1199. // display: flex;
  1200. height: 80%;
  1201. .tr_one{
  1202. display: flex;
  1203. justify-content: space-around;
  1204. width: 100%;
  1205. th{
  1206. flex: 1;
  1207. font-size: 12px;
  1208. font-family: PingFang SC;
  1209. font-weight: bold;
  1210. color: #343434;
  1211. line-height: 36px;
  1212. overflow: hidden;
  1213. text-overflow:ellipsis;
  1214. white-space: nowrap;
  1215. }
  1216. }
  1217. .two_tr{
  1218. display: flex;
  1219. justify-content: space-around;
  1220. font-size: 12px;
  1221. font-family: PingFang SC;
  1222. font-weight: bold;
  1223. color: #343434;
  1224. line-height: 36px;
  1225. td{
  1226. flex: 1;
  1227. overflow: hidden;
  1228. text-overflow:ellipsis;
  1229. white-space: nowrap;
  1230. }
  1231. }
  1232. .two_trtwo{
  1233. background-color: #F2F2F2;
  1234. }
  1235. }
  1236. // 通知公告弹窗
  1237. .index_headertan{
  1238. margin: 0 30px;
  1239. p{
  1240. margin: 0;
  1241. }
  1242. p:nth-child(1){
  1243. font-size: 24px;
  1244. font-family: PingFang SC;
  1245. font-weight: bold;
  1246. color: #343434;
  1247. line-height: 24px;
  1248. text-align: center;
  1249. margin-bottom: 10px;
  1250. }
  1251. p:nth-child(2){
  1252. font-size: 16px;
  1253. font-family: PingFang SC;
  1254. font-weight: 400;
  1255. color: #666666;
  1256. line-height: 24px;
  1257. text-align: center;
  1258. margin-bottom: 20px;
  1259. }
  1260. }
  1261. </style>