index.vue 38 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304
  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;">{{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" @click="index_deledetfe(item.id)">
  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">
  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 } 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. }
  281. }
  282. },
  283. queryParamstab:{
  284. table:'sys_notice',
  285. orderBy:'create_time desc',
  286. pageNo:1,
  287. pageSize:6,
  288. condition:{
  289. notice_type:1
  290. }
  291. },
  292. // 公司概况
  293. queryParamstabprofile:{
  294. table:'sys_info',
  295. orderBy:'create_time desc',
  296. pageNo:1,
  297. pageSize:1,
  298. fixedData:{
  299. condition:{
  300. info_type:1
  301. }
  302. }
  303. },
  304. // 日历
  305. queryParamscalendar:{
  306. table:'sys_schedule',
  307. orderBy:'create_time desc',
  308. pageNo:1,
  309. pageSize:10,
  310. fixedData:{
  311. condition:{
  312. create_by:''
  313. }
  314. }
  315. },
  316. // 备忘录
  317. queryParamstabmemorandum:{
  318. table:'sys_memorandum',
  319. orderBy:'create_time desc',
  320. pageNo:1,
  321. pageSize:6,
  322. fixedData:{
  323. condition:{
  324. create_by:''
  325. }
  326. }
  327. },
  328. // 通讯录
  329. queryParamsail:{
  330. table:'sys_contacts',
  331. orderBy:'create_time desc',
  332. pageNo:1,
  333. pageSize:6,
  334. },
  335. num:0,
  336. numlist:0,
  337. numprofile:0,
  338. dictType:'sys_notice_type',
  339. // 公司概况
  340. dictTypetwo:'sys_describe_type',
  341. gettabList:[],
  342. getLisprofileone:[],
  343. // 备忘录
  344. getmemorandum:[],
  345. //通讯录参数
  346. aliemg:{
  347. table:'sys_contacts',
  348. orderBy:'create_time desc',
  349. pageNo:1,
  350. pageSize:6,
  351. },
  352. tableDataalid:[],
  353. getLisaillie:[],
  354. alendarList:[],
  355. calendarData: [
  356. ],
  357. ary:[],
  358. tieku:'',
  359. comg:'',
  360. aekti:'',
  361. // 弹框数据
  362. form:{
  363. },
  364. // 表单校验
  365. rules: {
  366. },
  367. //日历弹框
  368. calendaradd:{
  369. table:'sys_schedule',
  370. isUi:false,
  371. fixedData:{
  372. id:-1
  373. }
  374. },
  375. //备忘录弹框
  376. calendaraddmer:{
  377. table:'sys_memorandum',
  378. isUi:false,
  379. fixedData:{
  380. id:-1
  381. }
  382. },
  383. // input
  384. inputList:[],
  385. // 时间
  386. dataList:[],
  387. //单选框
  388. radiolist:[],
  389. // 复选框
  390. chekbosList:[],
  391. //下拉框
  392. selectList:[],
  393. editorList:[],
  394. queryData: {},
  395. queryDatatwo:{},
  396. nummer:0 ,//0 是日历 1 是备忘录
  397. forme:{
  398. table:'',
  399. objId:-1,
  400. fixedData:{}
  401. },
  402. rjtu:[],
  403. truew:[],
  404. fales:[],
  405. postList:{},
  406. arr:'2,2,3,3,4,4',
  407. // 删除参数
  408. deledlid:{
  409. table:'sys_memorandum',
  410. idList:[],
  411. user: {
  412. oldPassword: undefined,
  413. newPassword: undefined,
  414. confirmPassword: undefined
  415. },
  416. shower:true, //判断删除图标是否显示
  417. },
  418. titlees:'通知公告',//通知公告弹框
  419. openety:false,
  420. actingk:{}
  421. };
  422. },
  423. created() {
  424. // console.log(this.user)
  425. this.unique(this.arr)
  426. this.getList()
  427. this.getListtab()
  428. this.getLiser()
  429. this.getLisprofile()
  430. // 用户信息
  431. this.getUser()
  432. // this.getLismemorandum() //备忘录
  433. this.getLisail()//通讯录
  434. this.getLisailtwo()
  435. },
  436. computed: {
  437. // 时间高亮的数组
  438. brightDate () {
  439. // let ary = []
  440. var that = this
  441. // console.log(that.calendarData,887)
  442. if(that.calendarData.length !==null){
  443. for (var i = 0 ; i < that.calendarData.length; i++) {
  444. // that.ary.push(that.calendarData[i].startDate)
  445. // that.ary.push(that.calendarData[i].begin_time.slice(0,10))
  446. // that.ary.push(that.calendarData[i].all_date.split(','))
  447. that.calendarData[i].love="yu"
  448. if(that.calendarData[i].remind_time !== undefined){
  449. // that.rjtu.concat(that.calendarData[i].all_date.join(','))
  450. that.ary.push(that.calendarData[i].remind_time)
  451. // that.calendarData[i].all_date.fi
  452. // that.calendarData[i].remind_time.filter(route => {
  453. // // console.log(route,9875)
  454. // that.ary.push(route)
  455. // })
  456. // that.ary = that.calendarData[i].all_date
  457. // console.log(that.calendarData[i].all_date.join(','),754)
  458. }
  459. }
  460. }
  461. console.log(that.ary)
  462. return that.ary
  463. }
  464. },
  465. methods: {
  466. // Tooltip 文字提示
  467. content (date) {
  468. console.log(date,37645)
  469. let data = date
  470. let datase = date
  471. let content = ''
  472. let conert = ''
  473. let conertre = ''
  474. let nujue= 0
  475. let nujeug = []
  476. let setre = []
  477. this.truew = []
  478. console.log(this.calendarData)
  479. for (var i = 0 ; i < this.calendarData.length; i++) {
  480. if(this.calendarData[i].schedule_content !== undefined){
  481. this.calendarData[i].schedule_content = this.calendarData[i].schedule_content.replace(/<\/?[^>]*>/g, '')
  482. }
  483. if(data == this.calendarData[i].remind_time){
  484. content = content + this.calendarData[i].schedule_content + '、'
  485. console.log(i,this.calendarData.length)
  486. }
  487. console.log(content)
  488. }
  489. console.log(content)
  490. // console.log(this.rjtu,12345)
  491. // content = this.rjtu.join(',')
  492. return content
  493. },
  494. //数据 第一部分列表
  495. getList() {
  496. this.loading = true;
  497. this.configList = []
  498. listIndex(this.queryParams).then(response => {
  499. if(response.data.rows !== null){
  500. this.configList = response.data.rows;
  501. }else {
  502. this.configList.push({notice_title: "暂无数据"});
  503. }
  504. console.log(this.configList)
  505. this.total = response.data.total;
  506. this.loading = false;
  507. }
  508. );
  509. },
  510. //数据 第二部分列表
  511. getListtabone() {
  512. this.loading = true;
  513. listIndex(this.queryParams).then(response => {
  514. this.configList = response.data.rows;
  515. console.log(this.configList)
  516. this.total = response.data.total;
  517. this.loading = false;
  518. }
  519. );
  520. },
  521. //数据 第三部分列表
  522. getLisprofile() {
  523. this.loading = true;
  524. listIndex(this.queryParamstabprofile).then(response => {
  525. if(response.data !== undefined){
  526. this.getLisprofileone = response.data.rows;
  527. if(response.data.rows !== null){
  528. this.tieku = this.getLisprofileone[0].info_title
  529. this.comg = this.getLisprofileone[0].info_content
  530. }else {
  531. this.tieku = '暂无数据'
  532. this.comg = '暂无数据'
  533. }
  534. console.log(this.getLisprofileone[0].info_title,98)
  535. this.totalprofile = response.data.total;
  536. }
  537. this.loading = false;
  538. }
  539. );
  540. },
  541. //数据 日历数据列表
  542. getLisalendar() {
  543. this.loading = true;
  544. this.queryParamscalendar.fixedData.condition.create_by = this.user.userName
  545. listIndex(this.queryParamscalendar).then(response => {
  546. if(response.data !== undefined){
  547. this.calendarData = response.data.rows;
  548. console.log(this.calendarData,9845765)
  549. }
  550. this.loading = false;
  551. }
  552. );
  553. },
  554. //数据 备忘录数据列表
  555. getLismemorandum() {
  556. this.loading = true;
  557. this.getmemorandum = []
  558. this.queryParamstabmemorandum.fixedData.condition.create_by = this.user.userName
  559. listIndex(this.queryParamstabmemorandum).then(response => {
  560. if(response.data !== undefined){
  561. if(response.data.rows !== null){
  562. this.shower = true
  563. this.getmemorandum = response.data.rows;
  564. }else{
  565. this.shower = false
  566. this.getmemorandum.push({memorandum_title:'暂无数据',shower:false})
  567. }
  568. console.log(this.getmemorandum,98765)
  569. }
  570. this.loading = false;
  571. }
  572. );
  573. },
  574. // 数据列表 通讯录数据
  575. getLisailtwo() {
  576. this.loading = true;
  577. listIndex(this.queryParamsail).then(response => {
  578. if(response.data !== undefined){
  579. this.getLisaillie = response.data.rows;
  580. // console.log(this.configList)
  581. }
  582. this.totalali = response.data.total
  583. this.loading = false;
  584. }
  585. );
  586. },
  587. //tab 公告 栏数据
  588. getListtab() {
  589. this.loading = true;
  590. listIndextwo(this.dictType).then(response => {
  591. this.editableTabs = response.data;
  592. this.queryParams.dictType = response.data[1].dictType
  593. console.log(this.editableTabs)
  594. // this.total = response.total;
  595. this.loading = false;
  596. }
  597. )
  598. },
  599. // 公司概况 tab
  600. getLiser() {
  601. this.loading = true;
  602. listIndextherr(this.dictTypetwo).then(response => {
  603. this.editableTabsteo = response.data;
  604. console.log(this.editableTabsteo)
  605. // this.total = response.total;
  606. this.loading = false;
  607. }
  608. )
  609. },
  610. // 通讯录表头
  611. getLisail() {
  612. this.loading = true;
  613. listIndexfou(this.aliemg).then(response => {
  614. if(response.data !== undefined){
  615. this.tableDataalid = response.data.tableHeadList;
  616. this.postList = response.data
  617. this.postList.rows.filter(route => {
  618. route.dept_id = route.dept_id.value
  619. })
  620. console.log(this.tableDataalid,67)
  621. this.totalprofile = response.data.total;
  622. }
  623. this.loading = false;
  624. }
  625. );
  626. },
  627. //日历新增弹框数据
  628. getLisalendaraddd() {
  629. this.loading = true;
  630. this.queryData = []
  631. listIndextanl(this.calendaradd).then(response => {
  632. if(response.data !== undefined){
  633. this.queryData = response.data
  634. // console.log(this.selectList)
  635. }
  636. this.loading = false;
  637. }
  638. );
  639. },
  640. //备忘录新增弹框数据
  641. getLisalendaradddmer() {
  642. this.loading = true;
  643. this.queryData = []
  644. listIndextanl(this.calendaraddmer).then(response => {
  645. if(response.data !== undefined){
  646. this.queryData = response.data
  647. // console.log(this.selectList)
  648. }
  649. this.loading = false;
  650. }
  651. );
  652. },
  653. goTarget(href) {
  654. window.open(href, "_blank");
  655. },
  656. handleSizeChange(val) {
  657. console.log(`每页 ${val} 条`);
  658. },
  659. handleCurrentChange(val) {
  660. this.queryParams.pageNo = val
  661. this.getList()
  662. console.log(`当前页: ${val}`);
  663. },
  664. // 公司概况
  665. handleSizeChangeprofile(val) {
  666. console.log(`每页 ${val} 条`);
  667. },
  668. handleCurrentChangeprofile(val) {
  669. this.queryParamstabprofile.pageNo = val
  670. this.getLisprofile()
  671. console.log(`当前页: ${val}`);
  672. },
  673. // 通讯录
  674. handleSizeChangeali(val) {
  675. console.log(`每页 ${val} 条`);
  676. },
  677. handleCurrentChangeali(val) {
  678. this.queryParamsail.pageNo = val
  679. this.getLisailtwo()
  680. console.log(`当前页: ${val}`);
  681. },
  682. handleClick(tab, event) {
  683. console.log(tab, event);
  684. },
  685. // 第一部分tab点击
  686. tabSbu(index){
  687. console.log(index)
  688. this.num = index - 1
  689. this.queryParams.fixedData.condition.notice_type = index
  690. this.getList()
  691. },
  692. // 第二部分tab点击numlist
  693. tabList(index){
  694. this.numlist = index
  695. },
  696. // 第三部分tab点击
  697. tabSbuprofile(index){
  698. this.numprofile = index - 1
  699. this.queryParamstabprofile.fixedData.condition.info_type = index
  700. this.getLisprofile()
  701. },
  702. // 表单重置
  703. reset() {
  704. this.form ={
  705. },
  706. this.resetForm("form");
  707. },
  708. // 取消按钮
  709. cancel() {
  710. this.open = false;
  711. this.openety = false
  712. this.reset();
  713. },
  714. /** 新增按钮操作 */
  715. handleAdd() {
  716. this.nummer = 0
  717. console.log(this.open)
  718. this.reset();
  719. this.form ={
  720. }
  721. this.getLisalendaraddd()
  722. this.open = true;
  723. this.title = "添加日程";
  724. },
  725. /** 提交按钮操作 */
  726. handleQuery() {
  727. for(let item of this.queryData.showData){
  728. if(item.htmlType == 'checkbox' || item.htmlType == 'imageUpload' || item.htmlType == 'fileUpload'){
  729. this.form[item.columnName] = this.$refs[item.columnName][0].config
  730. } else{
  731. this.form[item.columnName] = this.$refs[item.columnName][0].config[item.columnName]
  732. }
  733. }
  734. // this.forme = this.form
  735. if(this.nummer == 0){
  736. this.forme.table = 'sys_schedule'
  737. this.forme.objId = -1
  738. this.forme.fixedData = this.form
  739. // if(this.forme.fixedData.remind_type !== undefined){
  740. // this.forme.fixedData.remind_type = this.forme.fixedData.remind_type.join(',');
  741. // }
  742. //日历
  743. console.log(this.forme.fixedData,this.forme)
  744. addConfigindex(this.forme).then(response => {
  745. this.msgSuccess("新增成功");
  746. // this.open = false;
  747. this.getLisalendar()
  748. this.cancel();
  749. });
  750. }else if(this.nummer == 1){
  751. // this.form.table = 'sys_memorandum'
  752. this.forme.table = 'sys_memorandum'
  753. this.forme.objId = -1
  754. this.forme.fixedData = this.form
  755. //备忘录
  756. addConfigindex(this.forme).then(response => {
  757. this.msgSuccess("新增成功");
  758. // this.open = false;
  759. this.getLismemorandum()
  760. this.cancel();
  761. });
  762. }
  763. console.log(this.form.fixedData,22311)
  764. // this.getList();
  765. },
  766. // 弹框
  767. changeFn(obj) {
  768. console.log(obj)
  769. for(let key in obj){
  770. this.form.fixedData[key] = obj[key]
  771. }
  772. },
  773. // 新增备忘录
  774. memoere(){
  775. this.nummer = 1
  776. this.open = true;
  777. this.title = "添加备忘录";
  778. this.getLisalendaradddmer()
  779. },
  780. // 备忘录删除
  781. index_deledetfe(id){
  782. var that = this
  783. that.deledlid.idList = []
  784. that.deledlid.idList.push(id)
  785. this.$confirm('是否确认删除', "警告", {
  786. confirmButtonText: "确定",
  787. cancelButtonText: "取消",
  788. type: "warning"
  789. }).then(function() {
  790. return delIndexnabd(that.deledlid);
  791. }).then(() => {
  792. this.getLismemorandum();
  793. this.msgSuccess("删除成功");
  794. // this.$router.go(-1)
  795. })
  796. },
  797. handleSelectionChange() {
  798. },
  799. // 字符串去重
  800. unique(arr) {
  801. let arfe = []
  802. let serfgt = []
  803. arfe = arr.split(',')
  804. for(var i = 0 ; i < arfe.length; i++){
  805. if (serfgt.indexOf(arfe[i]) === -1) {
  806. serfgt.push(arfe[i])
  807. }
  808. }
  809. console.log(serfgt.join(','))
  810. // const res = new Map();
  811. // console.log(arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1)))
  812. // return arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1));
  813. },
  814. getUser() {
  815. getUserProfile().then(response => {
  816. this.user = response.data;
  817. this.getLisalendar()
  818. this.getLismemorandum()
  819. console.log(this.user,97653)
  820. });
  821. },
  822. // 通知公告弹窗
  823. headerCld(index){
  824. // this.title = '通知公告'
  825. // this.openety = true,
  826. // this.actingk=index
  827. }
  828. },
  829. };
  830. </script>
  831. <style lang="scss">
  832. .home{
  833. .el-tabs__header{
  834. margin-bottom: 5px !important;
  835. }
  836. .el-calendar-table tr td:first-child{
  837. border: 0 !important;
  838. }
  839. .el-calendar-table tr:first-child td{
  840. border: 0 !important;
  841. }
  842. .el-calendar-table td{
  843. border: 0 !important;
  844. }
  845. .el-calendar-table .el-calendar-day{
  846. height: 30px;
  847. text-align: center;
  848. line-height: 30px;
  849. border-radius: 30px;
  850. padding: 0;
  851. // background-color: #0B18E8;
  852. }
  853. .el-calendar-table td.is-selected{
  854. // background-color: #0B18E8;
  855. border-radius: 30px;
  856. }
  857. .el-calendar__header{
  858. border: 0;
  859. padding: 0 20px;
  860. }
  861. .el-calendar__body{
  862. padding-top: 0;
  863. padding-bottom: 0;
  864. }
  865. .el-pagination{
  866. padding-left: 0;
  867. }
  868. .index_headeNav{
  869. .el-tabs__item{
  870. position: relative;
  871. }
  872. }
  873. .el-table th.is-leaf, .el-table td{
  874. border: 0 !important;
  875. }
  876. .el-calendar__title{
  877. font-size: 12px;
  878. }
  879. .el-table td{
  880. padding: 6px 0;
  881. }
  882. .index_haderPaginfoiu{
  883. .el-pagination__jump{
  884. display: block !important;
  885. text-align: center;
  886. margin-left: 0;
  887. }
  888. }
  889. .everyDay {
  890. display: inline-block;
  891. width: 20px;
  892. height: 20px;
  893. line-height: 20px;
  894. background-color: #409eff;
  895. color: #fff;
  896. border-radius: 50%;
  897. margin-top: 5px;
  898. }
  899. }
  900. </style>
  901. <style scoped lang="scss">
  902. .home {
  903. // tab
  904. .index_headetab{
  905. display: flex;
  906. border-bottom: 1px solid #E5E5E5;
  907. height: 65px;
  908. padding-top: 10px;
  909. padding-bottom: 10px;
  910. span{
  911. cursor:pointer;
  912. width: 70px;
  913. text-align: center;
  914. line-height: 55px;
  915. height: 55px;
  916. font-size: 15px;
  917. font-family: PingFang SC;
  918. font-weight: bold;
  919. color: #666;
  920. position: relative;
  921. // flex: 1;
  922. // border-bottom: ;
  923. }
  924. .span{
  925. content: '';
  926. display: block;
  927. width: 18px;
  928. height: 8px;
  929. border-radius: 3px;
  930. background-color: #3C8DBC;
  931. color: #3C8DBC !important;
  932. // position: absolute;
  933. // border-bottom: ;
  934. }
  935. .spanto{
  936. color:#3C8DBC ;
  937. border-bottom: 3px solid #3C8DBC;
  938. }
  939. }
  940. p{
  941. margin: 0;
  942. }
  943. ul{
  944. margin: 0;
  945. padding: 0;
  946. }
  947. background-color: #eef0ff;
  948. blockquote {
  949. padding: 10px 20px;
  950. margin: 0 0 20px;
  951. font-size: 17.5px;
  952. border-left: 5px solid #eee;
  953. }
  954. .index_heade{
  955. // border: 1px solid #eee;
  956. // width: 100%;
  957. padding: 0 20px;
  958. height: 570px;
  959. background-color: #fff;
  960. position: relative;
  961. border-radius: 6px;
  962. .index_headerImg{
  963. width: 23px;
  964. height: 6px;
  965. position: absolute;
  966. right: 20px;
  967. top:32px;
  968. }
  969. .index_headerUl{
  970. width: 100%;
  971. padding: 0;
  972. margin: 0;
  973. height: 85%;
  974. li{
  975. margin: 0;
  976. display: flex;
  977. justify-content: space-between;
  978. align-items: center;
  979. height: 43px;
  980. cursor:pointer;
  981. img{
  982. width: 11px;
  983. height: 13px;
  984. }
  985. p{
  986. font-size: 14px;
  987. font-family: PingFang SC;
  988. font-weight: 400;
  989. color: #343434;
  990. line-height: 36px;
  991. margin: 0;
  992. text-align: left;
  993. flex: 1;
  994. padding: 0 18px;
  995. }
  996. span{
  997. font-size: 14px;
  998. font-family: PingFang SC;
  999. font-weight: 400;
  1000. color: #343434;
  1001. line-height: 36px;
  1002. }
  1003. }
  1004. }
  1005. .index_haderPagin{
  1006. display: flex;
  1007. justify-content: space-between;
  1008. align-items: center;
  1009. margin-top: 30px;
  1010. span{
  1011. flex: 1;
  1012. font-size: 12px;
  1013. font-family: PingFang SC;
  1014. font-weight: 400;
  1015. color: #343434;
  1016. text-align: right;
  1017. // line-height: 36px;
  1018. }
  1019. }
  1020. }
  1021. //表格样式
  1022. .index_headeNav{
  1023. padding: 0 20px;
  1024. height: 550px;
  1025. background-color: #fff;
  1026. position: relative;
  1027. border-radius: 6px;
  1028. .tab_i{
  1029. position: absolute;
  1030. right: 1px;
  1031. top:5px;
  1032. border-radius: 50%;
  1033. // display: block;
  1034. width: 15px ;
  1035. height: 15px;
  1036. line-height: 15px;
  1037. text-align: center;
  1038. color: #fff;
  1039. background-color: red;
  1040. overflow:hidden; //超出的文本隐藏
  1041. text-overflow:ellipsis; //溢出用省略号显示
  1042. white-space:nowrap; //溢出不换行
  1043. font-size: 11px;
  1044. font-family: PingFang SC;
  1045. font-weight: bold;
  1046. }
  1047. }
  1048. .index_nav{
  1049. // border: 1px solid #eee;
  1050. background-color: #fff;
  1051. height: 315px;
  1052. box-shadow: 0px 4px 4px 0px rgba(130, 150, 162, 0.64);
  1053. border-radius: 6px;
  1054. .index_navTime{
  1055. height: 270px;
  1056. position: relative;
  1057. }
  1058. .index_navTimeimg{
  1059. height: 47px;
  1060. width: 100%;
  1061. position: absolute;
  1062. bottom: -76px;
  1063. left: 0;
  1064. }
  1065. .index_navTimep{
  1066. padding: 10px 0;
  1067. margin: 0 20px;
  1068. margin-bottom: 10px;
  1069. border-bottom: 1px solid #E5E5E5;
  1070. display: flex;
  1071. justify-content: space-between;
  1072. align-items: center;
  1073. span:nth-child(1){
  1074. font-size: 15px;
  1075. font-family: PingFang SC;
  1076. font-weight: bold;
  1077. color: #3C8DBC;
  1078. }
  1079. span:nth-child(1)::before{
  1080. content: "";
  1081. display: block;
  1082. width: 18px;
  1083. height: 8px;
  1084. background: #3C8DBC;
  1085. border-radius: 3px;
  1086. }
  1087. span:nth-child(2){
  1088. font-size: 12px;
  1089. font-family: PingFang SC;
  1090. font-weight: 400;
  1091. color: #3C8DBC;
  1092. cursor:pointer;
  1093. }
  1094. }
  1095. }
  1096. // 公司概况样式
  1097. .index_headeProfile{
  1098. margin-top: 40px;
  1099. margin-bottom: 20px;
  1100. height: 590px;
  1101. .index_profilep{
  1102. font-size: 12px;
  1103. font-family: PingFang SC;
  1104. font-weight: bold;
  1105. color: #343434;
  1106. line-height: 27px;
  1107. }
  1108. .index_haderPagin{
  1109. margin-top: 25px;
  1110. }
  1111. .index_headerImg{
  1112. width: 21px;
  1113. height: 21px;
  1114. top:19px;
  1115. }
  1116. }
  1117. // 备忘录样式
  1118. .index_memoranduNnavTime{
  1119. height: 335px;
  1120. margin-top: 90px;
  1121. position: relative;
  1122. .index_navTimep{
  1123. padding: 20px 0;
  1124. // margin-bottom: 20px;
  1125. }
  1126. .index_navTimeimg{
  1127. height: 47px;
  1128. width: 100%;
  1129. position: absolute;
  1130. bottom: -76px;
  1131. left: 0;
  1132. bottom: -96px;
  1133. }
  1134. .imjud{
  1135. width: 23px;
  1136. height: 6px;
  1137. position: absolute;
  1138. right: 20px;
  1139. bottom: -50px;
  1140. }
  1141. ul{
  1142. padding: 0 20px;
  1143. li{
  1144. display: flex;
  1145. justify-content: space-between;
  1146. align-items: center;
  1147. border-bottom: 1px dashed #E5E5E5;
  1148. p{
  1149. font-size: 12px;
  1150. font-family: PingFang SC;
  1151. font-weight: 400;
  1152. color: #343434;
  1153. line-height: 36px;
  1154. flex: 1;
  1155. }
  1156. .index_navspande{
  1157. display: flex;
  1158. justify-content: space-between;
  1159. align-items: center;
  1160. span{
  1161. font-size: 12px;
  1162. font-family: PingFang SC;
  1163. font-weight: 400;
  1164. color: #343434;
  1165. line-height: 36px;
  1166. flex: 1;
  1167. }
  1168. img{
  1169. width: 16px;
  1170. height: 16px;
  1171. margin-left: 5px;
  1172. cursor: pointer;
  1173. }
  1174. }
  1175. }
  1176. }
  1177. }
  1178. //通讯录样式
  1179. .index_memoranduMail{
  1180. height: 363px;
  1181. margin-top: 100px;
  1182. .index_navTimeimgtwo{
  1183. width: 23px;
  1184. height: 6px;
  1185. }
  1186. .index_navTimep{
  1187. padding: 20px 0;
  1188. }
  1189. .index_memoranduMailnav{
  1190. padding: 0 20px;
  1191. height: 90%;
  1192. }
  1193. .index_navTimeimg{
  1194. height: 47px;
  1195. width: 100%;
  1196. position: absolute;
  1197. bottom: -76px;
  1198. left: 0;
  1199. bottom: -126px;
  1200. }
  1201. .index_haderPagin{
  1202. margin-top: 10px;
  1203. }
  1204. }
  1205. }
  1206. // table
  1207. .tab_tol{
  1208. // display: flex;
  1209. height: 80%;
  1210. .tr_one{
  1211. display: flex;
  1212. justify-content: space-around;
  1213. width: 100%;
  1214. th{
  1215. flex: 1;
  1216. font-size: 12px;
  1217. font-family: PingFang SC;
  1218. font-weight: bold;
  1219. color: #343434;
  1220. line-height: 36px;
  1221. overflow: hidden;
  1222. text-overflow:ellipsis;
  1223. white-space: nowrap;
  1224. }
  1225. }
  1226. .two_tr{
  1227. display: flex;
  1228. justify-content: space-around;
  1229. font-size: 12px;
  1230. font-family: PingFang SC;
  1231. font-weight: bold;
  1232. color: #343434;
  1233. line-height: 36px;
  1234. td{
  1235. flex: 1;
  1236. overflow: hidden;
  1237. text-overflow:ellipsis;
  1238. white-space: nowrap;
  1239. }
  1240. }
  1241. .two_trtwo{
  1242. background-color: #F2F2F2;
  1243. }
  1244. }
  1245. // 通知公告弹窗
  1246. .index_headertan{
  1247. margin: 0 30px;
  1248. p{
  1249. margin: 0;
  1250. }
  1251. p:nth-child(1){
  1252. font-size: 24px;
  1253. font-family: PingFang SC;
  1254. font-weight: bold;
  1255. color: #343434;
  1256. line-height: 24px;
  1257. text-align: center;
  1258. margin-bottom: 10px;
  1259. }
  1260. p:nth-child(2){
  1261. font-size: 16px;
  1262. font-family: PingFang SC;
  1263. font-weight: 400;
  1264. color: #666666;
  1265. line-height: 24px;
  1266. text-align: center;
  1267. margin-bottom: 20px;
  1268. }
  1269. }
  1270. </style>