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/3200_view.vue | 231 ++++++++++++++++++++++----------------------------------- 1 files changed, 90 insertions(+), 141 deletions(-) diff --git a/pages/modal/3200_view.vue b/pages/modal/3200_view.vue index 67413ef..63b1fa5 100644 --- a/pages/modal/3200_view.vue +++ b/pages/modal/3200_view.vue @@ -19,32 +19,32 @@ <!-- 鏂囨湰妗�鏁板瓧妗�--> <view class="dv_input" v-if="(item.name=='Input' || item.name=='InputNumber') "> <text v-if="item.setting.prefix" class="uni-icon" :class="[item.setting.prefix]" - @change="onChange(item)"></text> + @click="onEnterChange(item)"></text> <input class="uni-input" :class="item.disabled?'input-disabled':''" :type="item.name=='Input'?'text':item.name=='InputNumber'?'number':'text'" v-model="item.value" :disabled="item.disabled" :placeholder="item.placeholder" :style="{'width':item.setting.prefix && item.setting.suffix?'78%':item.setting.prefix || item.setting.suffix?'87%':'96%'}" - :focus="focusMateria" @focus="ontap(item)" @blur="onevent(item)" - :maxlength="-1" /> + :focus="focusMateria" @focus="ontap(item)" @keyup.enter="onEnterChange(item)" + @blur="onEnterChange(item)" :maxlength="-1" /> <text v-if="item.setting.suffix" class="uni-icon" :class="[item.setting.suffix]" - @click="onChange(item)"></text> + @click="onEnterChange(item)"></text> </view> <!-- 涓嬫媺妗�鍗曢� item.useDict?item.dict:item.selections--> <uni-data-select id="dv_select" v-if="item.name=='Select'" :class="item.disabled?'input-disabled':''" v-model="item.value" - :localdata="item.dict" @change="onChange(item)" :disabled="item.disabled" + :localdata="item.dict" @change="onEnterChange(item)" :disabled="item.disabled" :clear="false"></uni-data-select> <!-- 澶氳鏂囨湰 --> <view class="input-wrapper" v-if="item.name=='Textarea'"> <textarea class="uni-input" :value="item.value" :class="item.disabled?'input-disabled':''" :placeholder="item.placeholder" - @blur="onModelValue(item)" style="height:60px;" :style="{'width':'96%'}" + @blur="onEnterChange(item)" 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> @@ -53,7 +53,8 @@ <!-- 鍗曢�妗�--> <radio-group class="check_rememberPwd" v-if="item.name=='Radio'" :class="item.disabled?'input-disabled':''" :disabled="item.disabled" - :style="{'margin-left':'10rpx'}" @change="onModelValue(item)"> + :style="{'margin-left':'10rpx'}" @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> @@ -64,12 +65,29 @@ :disabled="item.disabled" v-model="item.value" @change="onModelValue(item)" :style="{'margin-left':'10rpx'}" /> <!-- 鏃ユ湡鏃堕棿 --> - <view class="input-wrapper" + <!-- <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 class="input-wrapper" + v-if="(item.name=='TimePicker' || item.name=='DatePicker' || item.name=='DatePickerRange') "> + <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)" /> </view> </view> <!-- 鏍呮牸甯冨眬 --> @@ -81,34 +99,37 @@ :style="{'width':cols.labelWidth+'px'}">{{cols.label}}锛�/text> <view class="dv_input" v-if="(cols.name=='Input' || cols.name=='InputNumber') "> <text v-if="cols.setting.prefix" class="uni-icon" - :class="[cols.setting.prefix]" @change="onChange(cols)"></text> + :class="[cols.setting.prefix]" + @click="onEnterChange(cols)"></text> <input class="uni-input" :class="cols.disabled?'input-disabled':''" :type="cols.name=='Input'?'text':cols.name=='InputNumber'?'number':'text'" v-model="cols.value" :disabled="cols.disabled" :placeholder="cols.placeholder" :style="{'width':cols.setting.prefix && cols.setting.suffix?'78%':cols.setting.prefix || cols.setting.suffix?'87%':'96%'}" - :focus="focusMateria" @focus="ontap(cols)" @blur="onevent(cols)" - :maxlength="-1" /> + :focus="focusMateria" @focus="ontap(cols)" @blur="onEnterChange(cols)" + @keyup.enter="onEnterChange(cols)" :maxlength="-1" /> <text v-if="cols.setting.suffix" class="uni-icon" - :class="[cols.setting.suffix]" @click="onChange(cols)"></text> + :class="[cols.setting.suffix]" + @click="onEnterChange(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" - :clear="false"></uni-data-select> + :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" :class="cols.disabled?'input-disabled':''" - :placeholder="cols.placeholder" @blur="onModelValue(cols)" + :placeholder="cols.placeholder" @blur="onEnterChange(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)" /> @@ -118,7 +139,8 @@ <!-- 鍗曢�妗�--> <radio-group class="check_rememberPwd" v-if="cols.name=='Radio'" :class="cols.disabled?'input-disabled':''" :disabled="cols.disabled" - :style="{'margin-left':'10rpx'}" @change="onModelValue(cols)"> + :style="{'margin-left':'10rpx'}" @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> @@ -126,16 +148,30 @@ </radio-group> <!-- Switch寮�叧 --> <switch v-if="cols.name=='Switch'" :class="cols.disabled?'input-disabled':''" - :disabled="item.disabled" v-model="cols.value" @change="onModelValue(cols)" + :disabled="cols.disabled" v-model="cols.value" @change="onModelValue(cols)" :style="{'margin-left':'10rpx'}" /> <!-- 鏃ユ湡鏃堕棿 --> <view class="input-wrapper" v-if="(cols.name=='TimePicker' || cols.name=='DatePicker') && !cols.disabled"> - <picker mode="date" class="date_iput" + <!-- <picker mode="date" class="date_iput" :class="cols.disabled?'input-disabled':''" :disabled="item.disabled" :value="cols.value" @change="onModelValue(cols)"> <view class="picker">{{cols.value}}</view> - </picker> + </picker> --> + <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)" /> </view> </view> @@ -177,10 +213,17 @@ runCustomEvent, dataObjQuery } from "@/api/data.js" - + 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' export default { modules: { Base64, + }, + components: { + OIDatePicker, + OIDatePickerRange, + OITimePicker }, onBackPress(e) { // console.log("鐩戝惉杩斿洖鎸夐挳浜嬩欢",e); @@ -441,123 +484,24 @@ }); } }, + onCheckBoxValue(e) { //缁戝畾Model鍊�+ let values = e.detail.value || [] + var attr = item.fieldId; + this.detail2_styledef.form.model[attr] = values; - // 鍐呭鍙樺寲鍚庝簨浠�- async onChange(event) { - try { - if (event.id) { - var obj_attr = this.detail2_styledef.form.model; - // console.log(obj_attr); - var input_param = Base64.encode( - JSON.stringify( - Object.keys(obj_attr).map((a) => ({ - attr: a, - value: obj_attr[a] || "", - })) - ) - ); - var $this = this; - var dataInfo = { - ed_type: 0, - start_transaction: true, - class_id: this.$data.detail2_styledef.form.clsId, - class_name: '', - event_id: event.id, - event_name: '', - data_obj_id: "", - obj_attr: obj_attr, - prj_id: '', - ref_cls_id: '', - rel_obj_id: '', - user_login: '', - data_json: '', - compose_info: '', - ext_info: '', - global_attr: '', - input_param: input_param, - }; - runCustomEvent(dataInfo).then(result => { - // console.log(result); - if (result.ret != 0) { - var tip = result.err_info ? typeof result.err_info == 'string' ? result - .err_info : result.err_info.join('<br/>') : ''; - if (result.ret == 801) uni.showModal({ - title: this.translateSys("tip"), - content: tip, - showCancel: false, - confirmText: this.translateSys('close') - }); - else uni.showModal({ - title: this.translateSys("tip"), - content: tip + ',' + this.translateSys('tip') + ':' + result - .ret, - showCancel: false, - confirmText: this.translateSys('close') - }); - return false; - } else { - var tip = result.info ? typeof result.info == 'string' ? result.info : - result.info.join('<br/>') : ''; - if (tip) uni.showModal({ - title: this.translateSys("tip"), - content: tip, - showCancel: false, - confirmText: this.translateSys('close') - }); - - if (result.result_type == 0 && result.action) { - result.action.forEach(item => { - if (item.action_type == "set_dlg_attr") { - // value = {"attr":"xxx", "value":"xxx"} - var data = item.value; - $this.$data.detail2_styledef.form.items.forEach(async ( - ele, index) => { - data.forEach(async (ele2, index) => { - if (ele.fieldId == ele2 - .attr) { - ele.value = ele2 - .value; - } - }); - }); - } - }); - } else { - // this.detail2StyleDefList=[]; - if (result.info) { - uni.showModal({ - title: this.translateSys("tip"), - content: result.info, - showCancel: false, - confirmText: this.translateSys('close') - }); - } - } - } - - - }).catch(ex => { - // console.log(ex); - uni.showModal({ - title: this.translateSys("error") + "8.1", - content: ex.errMsg, - showCancel: false, - confirmText: this.translateSys('close') - }); - }); - } - } catch (ex) { - var tip = typeof ex == "string" ? ex : ex.message; - uni.showModal({ - title: this.translateSys("error") + "8.2", - content: this.translate('execute_after_change_event_failed') + this.translateSys( - "comma") + - this.translate('reason') + this.translateSys("colon") + tip, - showCancel: false, - confirmText: this.translateSys('close') - }); - - } + }, + onRadioBoxValue(e) { //缁戝畾Model鍊�+ let values = e.detail.value || "" + var attr = item.fieldId; + this.detail2_styledef.form.model[attr] = values; + }, + onModelValue(item) { + var attr = item.fieldId; + this.detail2_styledef.form.model[attr] = item.value; + }, + onEnterChange(item) { + var attr = item.fieldId; + this.detail2_styledef.form.model[attr] = item.value; }, //鐐瑰嚮鎸夐挳 onBtnClick(btn) { @@ -566,8 +510,10 @@ uni.showModal({ title: this.translateSys("tip"), content: btn.PromptContent || this.translate("are_you_sure"), + cancelText: this.translateSys('ok'), + confirmText: this.translateSys('cancel'), success: function(res) { - if (res.confirm) { + if (res.cancel) { that.onButtonClicked(btn); // } else if (res.cancel) { // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷'); @@ -594,8 +540,10 @@ uni.showModal({ title: this.translateSys("tip"), content: btn.PromptContent || this.translate("are_you_sure"), + cancelText: this.translateSys('ok'), + confirmText: this.translateSys('cancel'), success: function(res) { - if (res.confirm) { + if (res.cancel) { that.onButtonClicked(btn); // } else if (res.cancel) { // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷'); @@ -989,7 +937,8 @@ .uni-icon { /* border: 1px solid red; */ - width: 8%; + width: 30rpx; + padding: 10rpx 5rpx; font-family: uniicons; font-size: 40rpx; font-weight: 400; -- Gitblit v1.9.1