From 00814401bba75825126baa6675e542ea3c82a5bb Mon Sep 17 00:00:00 2001 From: cuiqian2004 <cuiqian2004@163.com> Date: 星期五, 14 三月 2025 12:19:39 +0800 Subject: [PATCH] 日期 --- pages/modal/3018_2.vue | 265 ++++++++++++++++++++++++++++++---------------------- 1 files changed, 151 insertions(+), 114 deletions(-) diff --git a/pages/modal/3018_2.vue b/pages/modal/3018_2.vue index 56d6ed0..29fca4f 100644 --- a/pages/modal/3018_2.vue +++ b/pages/modal/3018_2.vue @@ -12,7 +12,7 @@ <uni-data-select id="dv_select" v-if="item.name=='Select'" :style="'width: calc(100% - '+item.labelWidth-10+'px);'" :class="item.disabled?'input-disabled':''" v-model="item.value" :localdata="item.dict" - @change="onChange(item)" :disabled="item.disabled" :clear="false"></uni-data-select> + @change="onEnterChange(item)" :disabled="item.disabled" :clear="false"></uni-data-select> <!-- 鏂囨湰妗�鏁板瓧妗�--> <view class="input-wrapper" v-if="(item.name=='Input' || item.name=='InputNumber')"> <text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]" @@ -22,22 +22,22 @@ v-model="item.value" :disabled="item.disabled" :placeholder="item.placeholder" :style="{'padding-left':item.setting.prefix?0 : '8rpx','right':item.setting.suffix?0 : '8rpx'}" :focus="focusFieldId == item.fieldId" @focus="ontap(item)" @click="onClick(item)" - @keyup.enter="onModelValue(item)" @blur="onModelValue(item)" :maxlength="-1" /> + @keyup.enter="onEnterChange(item)" @blur="onEnterChange(item)" :maxlength="-1" /> <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]" @click="classAttr_extButton(item)"></text> </view> <!-- 澶氳鏂囨湰 --> <view class="input-wrapper" v-if="item.name=='Textarea' "> - <textarea class="uni-input" :class="item.disabled?'input-disabled':''" :value="item.value" + <textarea class="uni-input" :class="item.disabled?'input-disabled':''" v-model="item.value" :focus="focusFieldId == item.fieldId" :placeholder="item.placeholder" - @blur="onModelValue(item)" @click="onClick(item)" :data-index="index" + @blur="onEnterChange(item)" @click="onClick(item)" :data-index="index" style="height:60px;" :style="{'width':'96%'}" :disabled="item.disabled"></textarea> </view> <!-- 澶嶉�妗�--> <checkbox-group class="check_rememberPwd" v-if="item.name=='Checkbox'" :class="item.disabled?'input-disabled':''" :disabled="item.disabled" - @change="onCheckBoxValue" :data-attr="item.fieldId"> + @change="onCheckBoxValue" :data-attr="item.fieldId" :data-index="index"> <label v-for="(item2) in item.selections" :key="item2.value"> <checkbox :value="item2.value" :checked="item.value.includes(item2.value)" /> <text>{{item2.label}}</text> @@ -46,7 +46,7 @@ <!-- 鍗曢�妗�--> <radio-group class="check_rememberPwd" v-if="item.name=='Radio'" :class="item.disabled?'input-disabled':''" :disabled="item.disabled" - @change="onRadioBoxValue" :data-attr="item.fieldId"> + @change="onRadioBoxValue" :data-attr="item.fieldId" :data-index="index"> <label v-for="(item2) in item.selections" :key="item2.value"> <radio :value="item2.value" :checked="item2.value === item.value" /> <text>{{item2.label}}</text> @@ -57,12 +57,23 @@ :class="item.disabled?'input-disabled':''" :disabled="item.disabled" v-model="item.value" @change="onModelValue(item)" /> <!-- 鏃ユ湡鏃堕棿 --> - <view class="input-wrapper" v-if="(item.name=='TimePicker' || item.name=='DatePicker')"> + <!-- <view class="input-wrapper" v-if="(item.name=='TimePicker' || item.name=='DatePicker')"> <picker mode="date" class="date_iput" :class="item.disabled?'input-disabled':''" :disabled="item.disabled" :value="item.value" @change="onModelValue(item)"> <view class="picker">{{item.value}}</view> </picker> - </view> + </view> --> + <OIDatePicker v-if="item.name=='DatePicker'" :class="item.disabled?'input-disabled':''" + :disabled="item.disabled" v-model="item.value" :placeholder="item.placeholder" + :defaultToday="item.setting.defaultToday" :format="item.setting.format" + @change="onModelValue(item)" /> + <OIDatePickerRange v-if="item.name=='DatePickerRange'" :rangeSeparator="item.setting.separator" + :format="item.setting.format" :class="item.disabled?'input-disabled':''" + :disabled="item.disabled" v-model="item.value" :placeholder="item.placeholder" + @change="onModelValue(item)" /> + <OITimePicker v-if="item.name=='TimePicker'" :class="item.disabled?'input-disabled':''" + :disabled="item.disabled" v-model="item.value" :placeholder="item.placeholder" + @change="onModelValue(item)" /> </uni-forms-item> <!-- 鏍呮牸甯冨眬 --> <uni-row class="demo-uni-row" v-if="item.name=='Layout'"> @@ -78,27 +89,29 @@ v-model="cols.value" :disabled="cols.disabled" :placeholder="cols.placeholder" :style="{'padding-left':cols.setting.prefix?0 : '8px','right':cols.setting.suffix?0 : '8px'}" :focus="focusFieldId == cols.fieldId" @focus="ontap(cols)" - @click="onClick(cols)" @blur="onevent(cols)" :maxlength="-1" /> + @click="onClick(cols)" @keyup.enter="onEnterChange(cols)" + @blur="onEnterChange(cols)" :maxlength="-1" /> <text v-if="cols.setting.suffix" class="uni-icon" :class="[cols.setting.suffix]" @click="classAttr_extButton(cols)"></text> </view> <!-- 涓嬫媺妗�鍗曢� cols.useDict?cols.dict:cols.selections--> <uni-data-select id="dv_select" v-if="cols.name=='Select' " :class="cols.disabled?'input-disabled':''" v-model="cols.value" - :localdata="cols.dict" @change="onChange(cols)" :disabled="cols.disabled" + :localdata="cols.dict" @change="onEnterChange(cols)" :disabled="cols.disabled" :clear="false"></uni-data-select> <!-- 澶氳鏂囨湰 --> <view class="input-wrapper" v-if="cols.name=='Textarea' "> - <textarea class="uni-input" :value="cols.value" + <textarea class="uni-input" v-model="cols.value" :class="cols.disabled?'input-disabled':''" :placeholder="cols.placeholder" - :focus="focusFieldId == cols.fieldId" @blur="onModelValue(cols)" + :focus="focusFieldId == cols.fieldId" @blur="onEnterChange(cols)" @click="onClick(cols)" style="height:60px;" :style="{'width':'96%'}" :disabled="cols.disabled"></textarea> </view> <!-- 澶嶉�妗�--> <checkbox-group class="check_rememberPwd" v-if="cols.name=='Checkbox'" :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" - @change="onCheckBoxValue" :data-attr="cols.fieldId"> + @change="onCheckBoxValue" :data-attr="cols.fieldId" :data-index="index" + :data-iindex="key"> <label v-for="(cols2) in cols.selections" :key="cols2.value"> <checkbox :value="cols2.value" :checked="cols.value.includes(cols2.value)" /> <text>{{cols2.label}}</text> @@ -107,7 +120,8 @@ <!-- 鍗曢�妗�--> <radio-group class="check_rememberPwd" v-if="cols.name=='Radio'" :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" - @change="onRadioBoxValue" :data-attr="cols.fieldId"> + @change="onRadioBoxValue" :data-attr="cols.fieldId" :data-index="index" + :data-iindex="key"> <label v-for="(cols2) in cols.selections" :key="cols2.value"> <radio :value="cols2.value" :checked="cols2.value === cols.value" /> <text>{{cols2.label}}</text> @@ -118,15 +132,27 @@ :disabled="cols.disabled" v-model="cols.value" @change="onModelValue(cols)" :style="{'margin-left':'10rpx'}" /> <!-- 鏃ユ湡鏃堕棿 --> - <view class="input-wrapper" + <!-- <view class="input-wrapper" v-if="(cols.name=='TimePicker' || cols.name=='DatePicker') && !cols.disabled"> <picker mode="date" class="date_iput" :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" :value="cols.value" @change="onModelValue(cols)"> <view class="picker">{{cols.value}}</view> </picker> - </view> - + </view> --> + <OIDatePicker v-if="cols.name=='DatePicker'" :class="cols.disabled?'input-disabled':''" + :disabled="cols.disabled" v-model="cols.value" :placeholder="cols.placeholder" + :defaultToday="cols.setting.defaultToday" :format="cols.setting.format" + @change="onModelValue(cols)" /> + <OIDatePickerRange v-if="cols.name=='DatePickerRange'" + :rangeSeparator="cols.setting.separator" :format="cols.setting.format" + :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" + v-model="cols.value" :placeholder="cols.placeholder" @change="onModelValue(cols)" /> + <OITimePicker v-if="cols.name=='TimePicker'" :class="cols.disabled?'input-disabled':''" + :disabled="cols.disabled" v-model="cols.value" :placeholder="cols.placeholder" + @change="onModelValue(cols)" /> </uni-forms-item> + <uni-forms-item v-else label=""></uni-forms-item> + </uni-col> </uni-row> </view> @@ -178,6 +204,11 @@ <script> import Base64 from '../../components/js-base64/base64.js' import utils from "@/js/utils.js" + import dayjs from "dayjs"; + import OIDatePicker from '@/components/oi-date-time-picker/oi-date-picker.vue' + import OIDatePickerRange from '@/components/oi-date-time-picker/oi-date-picker-range.vue' + import OITimePicker from '@/components/oi-date-time-picker/oi-time-picker.vue' + import { appGetInfo, dictGetInfo @@ -191,6 +222,11 @@ export default { modules: { Base64, + }, + components: { + OIDatePicker, + OIDatePickerRange, + OITimePicker }, data() { return { @@ -394,8 +430,7 @@ //鏈夐粯璁ゅ�锛屾樉绀洪粯璁ゅ� let itemName = ele.value || ""; if (itemName) { - styledefHead.form - .model[ele.fieldId] = itemName; + styledefHead.form.model[ele.fieldId] = itemName; } ele.dict = selections.map((a) => { return { @@ -403,9 +438,7 @@ text: a.label } }) - } - } if ($this.focusFieldId == "") { if (ele.name == 'Input' || ele.name == @@ -441,10 +474,7 @@ text: a.label } }) - - } - } if ($this.focusFieldId == "") { if (col.name == 'Input' || col @@ -798,73 +828,9 @@ // console.log("onClick",item); this.focusFieldId = item.fieldId }, - onevent(item) { - // console.log("onevent",item); - if (item.oldvalue != item.value && item.value.trim() != "") { - item.oldvalue = item.value; - var attr = item.fieldId; - this.head_styledef.form.model[attr] = item.value; - //瀛愭暟鎹被鎵爜鍖轰簨浠惰剼鏈�- var eventid = item.bind.onChangeEvent.id; //鍐呭鍙樺寲鍚庝簨浠�- if (eventid) { - var obj_attr = this.head_styledef.form.model; - // console.log(obj_attr); - var req = Object.keys(obj_attr).map((a) => ({ - attr: a, - value: obj_attr[a] || "", - })); - var info = { - eventid: eventid, - edtype: "0", - projectid: '', - rclsid: '', - robjid: '', - userlogin: '', - clsid: this.$data.param.DataCls.id, - objid: "", - attr: req, - dataJson: [], - } - this.DataObjRunCustomEvent(info, ""); - } - } - - }, - onChange(item) { - console.log("onChange", item); - if (item.oldvalue != item.value && item.value.trim() != "") { - item.oldvalue = item.value; - var attr = item.fieldId; - this.head_styledef.form.model[attr] = item.value; - var eventid = item.bind.onChangeEvent.id; //鍐呭鍙樺寲鍚庝簨浠�- if (eventid) { - // self.event_no_sub = 1; - var obj_attr = this.head_styledef.form.model; - // console.log(obj_attr); - var req = Object.keys(obj_attr).map((a) => ({ - attr: a, - value: obj_attr[a] || "", - })); - var info = { - eventid: eventid, - edtype: "0", - projectid: '', - rclsid: '', - robjid: '', - userlogin: '', - clsid: this.$data.param.DataCls.id, - objid: "", - attr: req, - dataJson: [] - } - this.DataObjRunCustomEvent(info); - } - } - - }, - onModelValue(item) { //缁戝畾Model鍊�- var attr = item.fieldId; - if (item.oldvalue != item.value && item.value.trim() != "") { + onEnterChange(item) { + console.log("onEnterChange", item); + if (item.oldvalue != item.value) { item.oldvalue = item.value; var attr = item.fieldId; this.head_styledef.form.model[attr] = item.value; @@ -872,21 +838,99 @@ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠� this.onChange(onChangeEvent); } - } + }, + // 鍐呭鍙樺寲鍚庝簨浠�+ async onChange(event) { + var eventid = event?.id; //鍐呭鍙樺寲鍚庝簨浠�+ if (eventid) { + // self.event_no_sub = 1; + var obj_attr = this.head_styledef.form.model; + // console.log(obj_attr); + var req = Object.keys(obj_attr).map((a) => ({ + attr: a, + value: obj_attr[a] || "", + })); + var info = { + eventid: eventid, + edtype: "0", + projectid: '', + rclsid: '', + robjid: '', + userlogin: '', + clsid: this.$data.param.DataCls.id, + objid: "", + attr: req, + dataJson: [] + } + this.DataObjRunCustomEvent(info); + } + + }, + onCheckBoxValue(e) { //缁戝畾Model鍊� let values = e.detail.value || [] - let attr = e.currentTarget?.dataset?.attr || "" - this.head_styledef.form.model[attr] = values; + const item = this.head_styledef.form.items[e.currentTarget?.dataset?.index || 0] + if (item?.setting?.colList) { + const col = item.setting.colList[e.currentTarget?.dataset?.iindex || 0] + if (col) { + col.value = values + let attr = col.fieldId; + this.head_styledef.form.model[attr] = col.value; + var onChangeEvent = col.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+ this.onChange(onChangeEvent); + } + return + } + } else { + if (item) { + item.value = values + let attr = item.fieldId; + this.head_styledef.form.model[attr] = item.value; + var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+ this.onChange(onChangeEvent); + } + } + } + }, onRadioBoxValue(e) { //缁戝畾Model鍊�- let value = e.detail.value || "" - let attr = e.currentTarget?.dataset?.attr || "" - this.head_styledef.form.model[attr] = value; + let values = e.detail.value || "" + const item = this.head_styledef.form.items[e.currentTarget?.dataset?.index || 0] + if (item?.setting?.colList) { + const col = item.setting.colList[e.currentTarget?.dataset?.iindex || 0] + if (col) { + col.value = values + let attr = col.fieldId; + this.head_styledef.form.model[attr] = col.value; + var onChangeEvent = col.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+ this.onChange(onChangeEvent); + } + return + } + } else { + if (item) { + item.value = values + let attr = item.fieldId; + this.head_styledef.form.model[attr] = item.value; + var onChangeEvent = item.bind.onChangeEvent; //鍐呭鍙樺寲鍚庝簨浠�+ if (onChangeEvent?.id) { //鍐呭鍙樺寲鍚庝簨浠�+ this.onChange(onChangeEvent); + } + } + + } + + }, + onModelValue(item) { + var attr = item.fieldId; + this.head_styledef.form.model[attr] = item.value; }, classAttr_extButton(item) { - console.log("classAttr_extButton", item) var onSuffixClickCallbackEvent = item.bind.onSuffixClickCallbackEvent; //鍚庡浘鏍囩偣鍑讳簨浠� var onSuffixClickEvent = item.bind.onSuffixClickEvent; //鍚庡浘鏍囩偣鍑诲洖璋� @@ -1108,22 +1152,18 @@ } else if (action.action_type == "set_dlg_current_edit_attr" ) { - if ($this - .focusOldFieldId == - action.value) { + if ($this.focusOldFieldId == action.value) { $this.setData({ focusFieldId: "" }) } else { $this.setData({ - focusFieldId: $this - .focusOldFieldId + focusFieldId: $this.focusOldFieldId }) } $this.$nextTick(() => { $this.setData({ - focusFieldId: action - .value + focusFieldId: action.value }) }); } else { @@ -1345,13 +1385,10 @@ var d = dialog({ title: '<i class="ace-icon fa fa-info-circle"></i> ' + $this.translateSys("tip"), - content: $this.translateSys( - "quotation_mark_left") + - action - .action_type + $this.translateSys( - "quotation_mark_right") + $this - .translate( - "tip_action_unprocessed") + content: $this.translateSys("quotation_mark_left") + + action.action_type + $this.translateSys( + "quotation_mark_right") + + $this.translate("tip_action_unprocessed") }); d.show(); } else if (action.action_type == 'open_select_userdlg') { @@ -2274,7 +2311,7 @@ } .uni-icon { - padding: 8rpx; + padding: 10rpx 5rpx; font-size: 32rpx; color: rgb(192, 196, 204); } @@ -2295,7 +2332,7 @@ .uni-icon { /* border: 1px solid red; */ - width: 8%; + width: 30rpx; font-family: uniicons; font-size: 40rpx; font-weight: 400; -- Gitblit v1.9.1