123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274 |
- <template>
- <view class="">
- <u-navbar title="详情" :custom-back="back">
- <template #right>
- <view class="navbar-right">
- <view class="message-box right-item" style="padding-right: 20rpx;">
- <u-icon name='more-dot-fill' @click="show=true" v-if="!groupId"></u-icon>
- </view>
- </view>
- </template>
- </u-navbar>
- <view class="scheduleForm-v jnpf-wrap">
- <u-toast ref="uToast" />
- <u-form :model="dataForm" ref="dataForm" :errorType="['toast']" label-position="left" label-width="150"
- label-align="left">
- <view class="u-p-l-20 u-p-r-20 form-item-box">
- <u-form-item label="标题" prop="title">
- <u-input input-align='right' v-model="dataForm.title" label-align="right" placeholder=""
- disabled></u-input>
- </u-form-item>
- <u-form-item label="内容" prop="content">
- <u-input input-align='right' v-model="dataForm.content" type="textarea" placeholder=""
- disabled></u-input>
- </u-form-item>
- </view>
- <!-- #ifdef APP-HARMONY -->
- <view class="u-p-l-20 u-p-r-20 u-m-t-20 form-item-box">
- <u-form-item label="附件" prop="content">
- <JnpfUploadFile v-model="dataForm.files" detailed />
- </u-form-item>
- </view>
- <!-- #endif -->
- <view class="jnpf-card">
- <view class="u-p-l-20 u-p-r-20 form-item-box">
- <u-form-item label="紧急程度" prop="urgent">
- <u-input input-align='right' v-model="dataForm.urgent" label-align="right" placeholder=""
- disabled></u-input>
- </u-form-item>
- <u-form-item label="类型" prop="category">
- <u-input input-align='right' v-model="dataForm.category" placeholder="" disabled></u-input>
- </u-form-item>
- <u-form-item label="创建人" prop="creatorUserId">
- <u-input input-align='right' v-model="dataForm.creatorUserId" placeholder=""
- disabled></u-input>
- </u-form-item>
- <u-form-item label="参与人" prop="toUserIds">
- <u-input input-align='right' v-model="dataForm.toUserIds" placeholder="" disabled></u-input>
- </u-form-item>
- </view>
- </view>
- <view class="jnpf-card">
- <view class="u-p-l-20 u-p-r-20 form-item-box">
- <u-form-item label="开始时间" prop="startDay">
- <datetime :delayMin="0" v-model="startDay" :date="startDate" disabled
- :showtdatetime='showtdatetime' :type="1" :allDay='dataForm.allDay' placeholder="" />
- </u-form-item>
- <u-form-item label="结束时间" prop="endDay">
- <datetime :delayMin="0" v-model="endDay" :date="endDate" disabled
- :showtdatetime='showtdatetime' :type="2" :allDay='dataForm.allDay' placeholder="" />
- </u-form-item>
- </view>
- </view>
- </u-form>
- </view>
- <u-action-sheet @click="handleAction" :list="actionList" :tips="{ text:'' , color: '#000' , fontSize: 30 }"
- v-model="show">
- </u-action-sheet>
- <u-action-sheet @click="delAction" :list="delList"
- :tips="{ text:toUserType===true?dataForm.repetition != '1'?'此为重复日程,将删除(含参与人)应用于':'确认删除(含参与人)当前日程':dataForm.repetition != '1'?'此为重复日程,将删除应用于':'确认删除当前日程' , color: '#000' , fontSize: 30 }"
- v-model="showBtn">
- </u-action-sheet>
- </view>
- </template>
- <script>
- import datetime from './t-datetime.vue'
- import {
- ScheduleDetail,
- ScheduleDelete
- } from '@/api/workFlow/schedule.js'
- import {
- useBaseStore
- } from '@/store/modules/base'
- const baseStore = useBaseStore()
- export default {
- components: {
- datetime
- },
- data() {
- return {
- showAction: '',
- userInfo: {},
- show: false,
- showtdatetime: false,
- dataForm: {
- id: 0,
- category: '',
- creatorUserId: 0,
- userName: '',
- allDay: 0,
- urgent: '1',
- startDay: '',
- startTime: '',
- endDay: '',
- endTime: '',
- duration: '',
- content: '',
- title: '',
- toUserIds: '',
- reminderTime: -2,
- reminderType: 1,
- send: '',
- sendName: '',
- repetition: 1,
- repeatTime: '',
- color: '#188ae2'
- },
- showBtn: false,
- startDate: {},
- endDate: {},
- repeatDate: {},
- repeat: '',
- endDay: '',
- startDay: '',
- toUserType: false,
- actionList: [],
- delList: [],
- groupId: ''
- }
- },
- onReady() {
- this.$refs.dataForm.setRules(this.rules);
- },
- onLoad(option) {
- this.dataForm.id = option.id
- this.toUserType = option.type
- this.actionList = []
- this.delList = []
- this.groupId = option.groupId
- if (this.toUserType == 'true') {
- this.actionList.push({
- text: '编辑',
- id: 'update'
- })
- this.actionList.push({
- text: '删除',
- id: 'deldete',
- color: '#ff3a3a',
- })
- } else {
- this.actionList.push({
- text: '删除',
- id: 'deldete',
- color: '#ff3a3a',
- })
- }
- ScheduleDetail(this.groupId, option.id).then(res => {
- let data = res.data || {};
- data.files = data.files ? JSON.parse(data.files) : [];
- this.dataForm = data
- if (this.dataForm.repetition != '1') {
- this.delList.push({
- text: '仅删除此日程',
- id: '1'
- })
- this.delList.push({
- text: '删除此日程及后续日程',
- id: '2',
- })
- this.delList.push({
- text: '删除所有日程',
- id: '3',
- })
- } else {
- this.delList.push({
- text: '删除',
- id: '3',
- color: '#ff3a3a',
- })
- }
- this.startDate = this.timestampToTime(this.dataForm.startDay)
- this.endDate = this.timestampToTime(this.dataForm.endDay)
- }).catch((err) => {
- uni.showToast({
- title: err,
- complete: () => {
- setTimeout(() => {
- uni.navigateBack()
- }, 300)
- }
- })
- })
- },
- methods: {
- delAction(index) {
- if (this.dataForm.repetition != '1') {
- ScheduleDelete(this.dataForm.id, index + 1).then(res => {
- uni.showToast({
- title: res.msg,
- complete: () => {
- uni.$emit('refresh')
- uni.navigateBack()
- }
- })
- })
- } else {
- ScheduleDelete(this.dataForm.id, 3).then(res => {
- uni.showToast({
- title: res.msg,
- complete: () => {
- uni.$emit('refresh')
- uni.navigateBack()
- }
- })
- })
- }
- },
- handleAction(index) {
- if (this.actionList[index].id == 'update') {
- uni.navigateTo({
- url: './form?id=' + this.dataForm.id
- })
- } else {
- this.showBtn = true
- }
- },
- back() {
- uni.navigateBack();
- },
- getResult() {
- uni.navigateBack()
- },
- changeSend(id, name) {
- this.dataForm.send = id
- this.dataForm.sendName = name
- },
- getDictionaryData() {
- baseStore.getDictionaryData({
- sort: 'scheduleType'
- }).then((res) => {
- this.typeOptions = res
- })
- },
- timestampToTime(timestamp) {
- let list = {}
- var date = new Date(timestamp);
- let Y = date.getFullYear();
- let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
- let D = date.getDate();
- let h = date.getHours();
- let m = date.getMinutes();
- let s = date.getSeconds();
- list.year = Y
- list.month = M
- list.date = D
- list.hours = h < 10 ? 0 + h : h
- list.minutes = m < 10 ? 0 + m : m
- list.seconds = s
- return list
- },
- }
- }
- </script>
- <style lang="scss">
- page {
- background-color: #f0f2f6;
- }
- .scheduleForm-v {
- padding-bottom: 110rpx;
- }
- </style>
|