jt
2022-11-23 0f0600e21a739caae4a9d7e57ad0d7aff11ec3db
test
5个文件已添加
2842 ■■■■■ 已修改文件
pages/modal/ms_classAttr.vue 2224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uni_modules/select-cy/changelog.md 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uni_modules/select-cy/components/select-cy/select-cy.vue 400 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uni_modules/select-cy/package.json 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
uni_modules/select-cy/readme.md 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/modal/ms_classAttr.vue
New file
@@ -0,0 +1,2224 @@
<style>
    .class_attr_title {
        font-size: 44rpx;
        padding-bottom: 22rpx;
        position: relative;
    }
    .class_attr_title .title_line {
        border-bottom: 2rpx solid #aaa;
        position: relative;
        bottom: -50rpx;
        width: calc(100% - 290rpx);
        margin-left: 100px;
    }
    .class_attr_title .title_icon {
        border-radius: 50%;
        width: 100rpx;
        line-height: 64rpx;
        display: inline-block;
        vertical-align: middle;
        padding-top: 10rpx;
        padding-left: 20rpx;
        text-align: center;
        color: #fff;
    }
    .class_attr_title i {
        color: #2c6aa0!important;
    }
    .class_attr_title .title_icon i {
        font-size: 80rpx;
    }
    .class_attr_title .title {
        padding-right: 22rpx;
        display: inline-block;
        background-color: #fff;
        position: relative;
        bottom: -8rpx;
    }
    .class_attr_title .arrow {
        position: absolute;
        top: 6rpx;
        right: 30rpx;
        font-size: 60rpx;
    }
    input::-webkit-input-placeholder {
        font-size: 12rpx;
    }
    textarea{
        width: 98%;
        border: 1px solid #d5d5d5;
        padding: 10rpx 8rpx 12rpx;
        background: #FFF;
        border-radius: 0 !important;
        font-size: 34rpx;
        font-family: inherit;
        box-shadow: none !important;
        transition-duration: 0.1s;
        color: #046db3;
        margin-top: 4px;
    }
    input{
        border: 1px solid #d5d5d5;
        width: 98%;
        height: 52rpx;
        background: #FFF;
        border-radius: 0 !important;
        color: #046db3;
        padding: 10rpx 8rpx 12rpx;
        font-size: 34rpx;
        font-family: inherit;
        box-shadow: none !important;
        transition-duration: 0.1s;
        margin-top: 4rpx;
    }
    .select{
        width: 20px;
        position: absolute;
        opacity: 0;
    }
    .class_attr_body .form-group {
        margin: 20rpx 30rpx;
        /* margin-left: -12px;
        margin-right: -12px; */
    }
    .form-group > label[class*="col-"] {
        margin-bottom: 8rpx;
        font-size: 32rpx;
    }
    .form-group label {
        vertical-align: middle;
        line-height: 60rpx;
    }
    .no-padding-right {
        padding-right: 0 !important;
    }
    .col-xs-12 {
        width: 100%;
    }
    .tx_title{
        font-size: 36rpx;
    }
    .tx_title2{
        font-size: 36rpx;
        text-align: right;
        display: inline-block;
        vertical-align: -2px;
    }
    .text-right{
        margin-right: 20rpx;
        margin-top: -6rpx;
        display: inline-block;
        float: right;
        font-size: 44rpx;
    }
    .text-right2 {
        margin: 0;
        vertical-align: -4px;
        margin-left: 9px;
        float: none;
        font-size: 44rpx;
        display: inline-block;
    }
    .section_iput{
        border: 1px solid #d5d5d5;
        width: 98%;
        height: 62rpx;
        background: #FFF;
        border-radius: 0 !important;
        color: #046db3;
        padding: 10rpx 8rpx 10rpx;
        font-size: 34rpx;
        font-family: inherit;
        box-shadow: none !important;
        transition-duration: 0.1s;
    }
    .date_iput{
        border: 1px solid #d5d5d5;
        /* width: 98%; */
        height: 62rpx;
        background: #FFF;
        border-radius: 0 !important;
        color: #046db3;
        padding: 10rpx 8rpx 4rpx;
        font-size: 34rpx;
        font-family: inherit;
        box-shadow: none !important;
        transition-duration: 0.1s;
    }
    button.btn_add {
        margin-top: 50rpx;
        padding: 20rpx;
        line-height: 1.5;
        background: #27A6E1;
        border: none;
        color: #fff;
        font-size: 38rpx;
        font-weight: bold;
    }
    .i_tishi{
        color: red;
        vertical-align: sub;
        font-style: initial;
        margin-left: 20rpx;
        font-size: 17px;
    }
    .attr_field{
        display: inline-block;
        vertical-align: middle;
        margin-left: 8px;
        /* width: 71%; */
    }
    .input_vallist {
        max-height: 350rpx;
        overflow-y:auto;
        display: none;
    }
    .input_vallist ul{
        /* border: 1px solid red; */
        padding: 0 20rpx;
    }
    .input_vallist ul li{
        list-style: none;
        padding: 20rpx;
        border-bottom: 1px solid #ccc;
    }
    .input_vallist ul li a{
        float: right;
    }
    .input_vallist ul li a i {
        font-size: 45rpx;
    }
    .panel_title{
        font-size: 38rpx;
        background-color: #27A6E1;
        line-height: 80rpx;
        color: #fff;
        text-align: center;
        font-weight: bold;
    }
    .v-panellist{
        border:4rpx solid #aaa;
        border-radius: 10rpx;
        margin-bottom: 10rpx;
    }
</style>
<template>
    <view class="content">
        <view class="v-area" v-for="(classattr,index) in classAttrList">
            <div class="class_attr_title" style="display: none;">
                <div class="title_line"></div>
                <div class="title_icon" :style="{'background-color':classattr.BkColor}">
                    <i class="ace-icon fa" :class="classattr.ImgFontStyle"></i>
                </div>
                <span class="title">{{classattr.Name}}</span>
                <a href="javascript:;" class="arrow" @tap="onarrow(index,classattr.Open)"><i class="ace-icon fa ":class="classattr.Open?'fa-angle-down':'fa-angle-up'"></i></a>
            </div>
            <div class="class_attr_body" :style="{'display':classattr.Open?'block':'none'}">
                <div class="dv_field_div" v-for="(attr,iindex) in classattr.Attr">
                    <view class="form-group" v-if="attr.Type=='字符串' || attr.Type=='可变长字符串' || attr.Type=='整数' || attr.Type=='浮点数'" :style="{'display':attr.hidden == 'True'?'none':''}">
                        <view v-if="classattr.control_style=='上下布局'">
                            <text class="tx_title" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>  <!-- attr.NotEmpty=='1' -->
                            <div class="text-right" v-if="attr.ext_button==true">
                                <a @tap="classAttr_extButton(index,iindex)" ><i class="ace-icon fa fa-plus-circle"></i></a>
                            </div>
                            <input type="text" :value="attr.Value" @focus="ontap" @blur="onevent" v-if="attr.Height=='1'" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" :disabled="attr.edit?false:true" > <!-- =='flase'?true:false -->
                            <textarea :value="attr.Value" @focus="ontap" @blur="onevent" v-else-if="attr.Height=='2'" :data-index="index":data-iindex="iindex" style="height:60px;" :style="{'width':attr.Width}" :disabled="attr.edit?false:true"></textarea>
                            <textarea :value="attr.Value" @focus="ontap" @blur="onevent" v-else-if="attr.Height=='3'" :data-index="index":data-iindex="iindex" style="height:90px;" :style="{'width':attr.Width}" :disabled="attr.edit?false:true"></textarea>
                        </view>
                        <view v-if="classattr.control_style=='左右布局'">
                            <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                            <input type="text" class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent" v-if="attr.Height=='1'" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) - (attr.ext_button==true?9:0) +'%'}" :disabled="attr.edit?false:true" >
                            <textarea class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent" v-else-if="attr.Height=='2'" :data-index="index":data-iindex="iindex" style="height:60px;" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) - (attr.ext_button==true?9:0) +'%'}" :disabled="attr.edit?false:true"></textarea>
                            <textarea class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent" v-else-if="attr.Height=='3'" :data-index="index":data-iindex="iindex" style="height:90px;" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) - (attr.ext_button==true?9:0) +'%'}" :disabled="attr.edit?false:true"></textarea>
                            <div class="text-right2" v-if="attr.ext_button==true">
                                <a @tap="classAttr_extButton(index,iindex)" ><i class="ace-icon fa fa-plus-circle"></i></a>
                            </div>
                            <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                        </view>
                    </view>
                    <view class="form-group" v-if="attr.Type=='布尔值'" :style="{'display':attr.hidden == 'True'?'none':''}">
                        <checkbox-group class="check_rememberPwd" @change="oncheck" :data-ischeck="attr.Value" :data-index="index" :data-iindex="iindex" :style="{'margin-left': classattr.control_style=='左右布局'?classattr.title_p_wdith+2 +'%':'10rpx'}">
                            <label>
                                <checkbox :value="attr.Value" :checked="attr.Value"/>
                                <text>{{attr.DispName}}<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                            </label>
                        </checkbox-group>
                    </view>
                    <view class="form-group" v-if="attr.Type=='日期' || attr.Type=='时间'" :style="{'display':attr.hidden == 'True'?'none':''}">
                        <view v-if="classattr.control_style=='上下布局'">
                            <text class="tx_title" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                            <picker mode="date" :value="attr.Value" @change="ondateTime" class="date_iput" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}">
                               <view class="picker">{{attr.Value}}</view>
                            </picker>
                        </view>
                        <view v-if="classattr.control_style=='左右布局'">
                            <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                            <picker mode="date" :value="attr.Value" @change="ondateTime" class="date_iput attr_field" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) +'%'}">
                               <view class="picker">{{attr.Value}}</view>
                            </picker>
                            <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                        </view>
                    </view>
                    <view class="form-group" v-if="attr.Type=='字典' || attr.Type=='字典-字符串'" :style="{'display':attr.hidden == 'True'?'none':''}">
                        <view v-if="classattr.control_style=='上下布局'">
                            <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                            <picker class="section_iput" @change="onchange" :range="attr.dictitem" range-key="CN_S_NAME" v-if="attr.select==false" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" :disabled="attr.edit?false:true">
                                <label class="">{{ attr.Value }}</label>
                            </picker>
                            <select-cy :value="attr.Value" :name="attr.Name" :options="attr.dictitem" showClearIcon="true" @change="onchange2" v-else-if="attr.select==true" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" :disabled="attr.edit?false:true"></select-cy>
                        </view>
                        <view v-if="classattr.control_style=='左右布局'">
                            <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                            <picker class="section_iput attr_field" @change="onchange" :range="attr.dictitem" range-key="CN_S_NAME" v-if="attr.select==false" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) +'%'}">
                                <label class="">{{ attr.Value }}</label>
                            </picker>
                            <select-cy :value="attr.Value" :name="attr.Name" :options="attr.dictitem" showClearIcon="true" @change="onchange2" v-else-if="attr.select==true" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}"></select-cy>
                            <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                        </view>
                    </view>
                    <view class="form-group" v-if="attr.Type=='引用对象(单个)' || attr.Type=='引用对象(多个)'" :style="{'display':attr.hidden == 'True'?'none':''}">
                        <view v-if="classattr.control_style=='上下布局'">
                            <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                            <div class="text-right" v-if="attr.Type=='引用对象(单个)'">
                                <a @tap="classAttr_AddRef" :data-classid="attr.RelCls.split('|')[0]" :data-classname="attr.RelCls.split('|')[1]" ><i class="ace-icon fa fa-plus-circle"></i></a>
                            </div>
                            <div class="text-right" v-if="attr.Type=='引用对象(多个)'">
                                <picker class="select" @change="classAttr_AddRef" :range="attr.RelClsList" range-key="name" :data-index="index" :data-iindex="iindex">
                                    <label class="">{{ attr.Value }}</label>
                                </picker>
                                <a class="class_attr_add_ref"><i class="ace-icon fa fa-plus-circle"></i></a>
                            </div>
                            <input type="text" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" disabled="true" >
                        </view>
                        <view v-if="classattr.control_style=='左右布局'">
                            <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                            <input type="text" class="attr_field" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) - 9 +'%'}" disabled="true" >
                            <div class="text-right2" v-if="attr.Type=='引用对象(单个)'">
                                <a @tap="classAttr_AddRef" :data-classid="attr.RelCls.split('|')[0]" :data-classname="attr.RelCls.split('|')[1]" ><i class="ace-icon fa fa-plus-circle"></i></a>
                            </div>
                            <div class="text-right2" v-if="attr.Type=='引用对象(多个)'">
                                <picker class="select" @change="classAttr_AddRef" :range="attr.RelClsList" range-key="name" :data-index="index" :data-iindex="iindex">
                                    <label class="">{{ attr.Value }}</label>
                                </picker>
                                <a class="class_attr_add_ref"><i class="ace-icon fa fa-plus-circle"></i></a>
                            </div>
                            <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                        </view>
                    </view>
                    <view class="form-group" v-if="attr.Type=='引用人员'" :style="{'display':attr.hidden == 'True'?'none':''}">
                        <view v-if="classattr.control_style=='上下布局'">
                            <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                            <div class="text-right">
                                <a class="class_attr_add_per" @tap="classAttr_AddPer(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a>
                            </div>
                            <input type="text" :value="attr.Value" :style="{'width':attr.Width}" disabled="true" >
                        </view>
                        <view v-if="classattr.control_style=='左右布局'">
                            <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                            <input type="text" class="attr_field" :value="attr.Value" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) - 9 +'%'}" disabled="true" >
                            <div class="text-right2">
                                <a class="class_attr_add_per" @tap="classAttr_AddPer(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a>
                            </div>
                            <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                        </view>
                    </view>
                    <view class="form-group" v-if="attr.Type=='引用项目'" :style="{'display':attr.hidden == 'True'?'none':''}">
                        <view v-if="classattr.control_style=='上下布局'">
                            <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                            <div class="text-right">
                                <a href="#" class="class_attr_add_prj" @tap="classAttr_AddPrj(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a>
                            </div>
                            <input type="text" :value="attr.Value" :style="{'width':attr.Width}" disabled="true" >
                        </view>
                        <view v-if="classattr.control_style=='左右布局'">
                            <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                            <input type="text" class="attr_field" :value="attr.Value" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) - 9 +'%'}" disabled="true" >
                            <div class="text-right2">
                                <a class="class_attr_add_prj" @tap="classAttr_AddPrj(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a>
                            </div>
                            <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                        </view>
                    </view>
                    <view class="form-group" v-if="attr.Type=='编码'" :style="{'display':attr.hidden == 'True'?'none':''}">
                        <view v-if="classattr.control_style=='上下布局'">
                            <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                            <input type="text" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" :disabled="attr.edit?false:true" >
                        </view>
                        <view v-if="classattr.control_style=='左右布局'">
                            <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                            <input type="text" class="attr_field" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) +'%'}" :disabled="attr.edit?false:true" >
                            <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                        </view>
                    </view>
                    <view class="form-group" v-if="attr.Type=='省市区'" :style="{'display':attr.hidden == 'True'?'none':''}">
                        <view v-if="classattr.control_style=='上下布局'">
                            <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                            <pickerAddress class="date_iput" @change="addresschange" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" >{{attr.Value}}</pickerAddress>
                        </view>
                        <view v-if="classattr.control_style=='左右布局'">
                            <p class="tx_title2" :style="{'width':classattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                            <pickerAddress class="date_iput attr_field" @change="addresschange" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - classattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) +'%'}">{{attr.Value}}</pickerAddress>
                            <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                        </view>
                    </view>
                </div>
            </div>
        </view>
        <view class="v-area class_attr_body">
            <view class="form-group">
                <!-- 左右布局 -->
                <p class="tx_title2" >{{param.Scan_Code.Name}}:</p>
                <input type="text" class="attr_field" :value="scanCodeVal" @focus="scan_ontap" :style="param.Scan_Code.Have_Select_Button==true?'width: '+(100-(param.Scan_Code.Name.length * 5)-16)+'%;':'width: '+(100-(param.Scan_Code.Name.length * 5)-7)+'%;'">
                <div class="text-right2" v-if="param.Scan_Code.Have_Select_Button==true">
                    <a @tap="scan_classAttr_extButton()" ><i class="ace-icon fa" :class="param.Scan_Code.Img?param.Scan_Code.Img:'fa-plus-circle'"></i></a>
                </div>
                <!-- 上下布局 -->
                <!-- <text class="tx_title">{{param.Scan_Code.Name}}:</text>
                <div class="text-right" v-if="param.Scan_Code.Have_Select_Button==true">
                    <a @tap="ms_classAttr_extButton()"><i class="ace-icon fa" :class="param.Scan_Code.Img?param.Scan_Code.Img:'fa-plus-circle'"></i></a>
                </div>
                <input type="text" value="" > -->
                <!-- 扫码后事件返回 -->
                <!-- <div class="input_vallist" >
                    <ul v-for="(inputval,vindex) in inputValList">
                        <li><span>{{inputval.Name}}</span><a href="javascript:;" @tap="inputValListIsDel(vindex)"><i class="ace-icon fa fa-times"></i></a></li>
                    </ul>
                </div> -->
            </view>
        </view>
        <view class="v-panel">
            <div class="panel_title">{{param.Sub_Cls.Title}}</div>
            <view class="v-panellist" v-for="(subpanel,index) in subPanelList">
                <view class="v-area" v-for="(subclassattr,index) in subpanel.subClassAttrList">
                    <div class="class_attr_title" style="display: none;">
                        <div class="title_line"></div>
                        <div class="title_icon" :style="{'background-color':subclassattr.BkColor}">
                            <i class="ace-icon fa" :class="subclassattr.ImgFontStyle"></i>
                        </div>
                        <span class="title">{{subclassattr.Name}}</span>
                        <a href="javascript:;" class="arrow" @tap="onarrow(index,subclassattr.Open)"><i class="ace-icon fa ":class="subclassattr.Open?'fa-angle-down':'fa-angle-up'"></i></a>
                    </div>
                    <div class="class_attr_body" :style="{'display':subclassattr.Open?'block':'none'}">
                        <div class="dv_field_div" v-for="(attr,iindex) in subclassattr.Attr">
                            <view class="form-group" v-if="attr.Type=='字符串' || attr.Type=='可变长字符串' || attr.Type=='整数' || attr.Type=='浮点数'" :style="{'display':attr.hidden == 'True'?'none':''}">
                                <view v-if="subclassattr.control_style=='上下布局'">
                                    <text class="tx_title" :style="{'width':subclassattr.title_p_wdith+'%'}">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>  <!-- attr.NotEmpty=='1' -->
                                    <div class="text-right" v-if="attr.ext_button==true">
                                        <a @tap="classAttr_extButton(index,iindex)" ><i class="ace-icon fa fa-plus-circle"></i></a>
                                    </div>
                                    <input type="text" :value="attr.Value" @focus="ontap" @blur="onevent" v-if="attr.Height=='1'" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" :disabled="attr.edit?false:true" > <!-- =='flase'?true:false -->
                                    <textarea :value="attr.Value" @focus="ontap" @blur="onevent" v-else-if="attr.Height=='2'" :data-index="index":data-iindex="iindex" style="height:60px;" :style="{'width':attr.Width}" :disabled="attr.edit?false:true"></textarea>
                                    <textarea :value="attr.Value" @focus="ontap" @blur="onevent" v-else-if="attr.Height=='3'" :data-index="index":data-iindex="iindex" style="height:90px;" :style="{'width':attr.Width}" :disabled="attr.edit?false:true"></textarea>
                                </view>
                                <view v-if="subclassattr.control_style=='左右布局'">
                                    <p class="tx_title2" :style="{'width':subclassattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                                    <input type="text" class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent" v-if="attr.Height=='1'" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - subclassattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) - (attr.ext_button==true?9:0) +'%'}" :disabled="attr.edit?false:true" >
                                    <textarea class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent" v-else-if="attr.Height=='2'" :data-index="index":data-iindex="iindex" style="height:60px;" :style="{'width': attr.Width.split('%')[0] - subclassattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) - (attr.ext_button==true?9:0) +'%'}" :disabled="attr.edit?false:true"></textarea>
                                    <textarea class="attr_field" :value="attr.Value" @focus="ontap" @blur="onevent" v-else-if="attr.Height=='3'" :data-index="index":data-iindex="iindex" style="height:90px;" :style="{'width': attr.Width.split('%')[0] - subclassattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) - (attr.ext_button==true?9:0) +'%'}" :disabled="attr.edit?false:true"></textarea>
                                    <div class="text-right2" v-if="attr.ext_button==true">
                                        <a @tap="classAttr_extButton(index,iindex)" ><i class="ace-icon fa fa-plus-circle"></i></a>
                                    </div>
                                    <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                                </view>
                            </view>
                            <view class="form-group" v-if="attr.Type=='布尔值'" :style="{'display':attr.hidden == 'True'?'none':''}">
                                <checkbox-group class="check_rememberPwd" @change="oncheck" :data-ischeck="attr.Value" :data-index="index" :data-iindex="iindex" :style="{'margin-left': subclassattr.control_style=='左右布局'?subclassattr.title_p_wdith+2 +'%':'10rpx'}">
                                    <label>
                                        <checkbox :value="attr.Value" :checked="attr.Value"/>
                                        <text>{{attr.DispName}}<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                                    </label>
                                </checkbox-group>
                            </view>
                            <view class="form-group" v-if="attr.Type=='日期' || attr.Type=='时间'" :style="{'display':attr.hidden == 'True'?'none':''}">
                                <view v-if="subclassattr.control_style=='上下布局'">
                                    <text class="tx_title" :style="{'width':subclassattr.title_p_wdith+'%'}">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true">*</i></text>
                                    <picker mode="date" :value="attr.Value" @change="ondateTime" class="date_iput" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}">
                                       <view class="picker">{{attr.Value}}</view>
                                    </picker>
                                </view>
                                <view v-if="subclassattr.control_style=='左右布局'">
                                    <p class="tx_title2" :style="{'width':subclassattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                                    <picker mode="date" :value="attr.Value" @change="ondateTime" class="date_iput attr_field" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - subclassattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) +'%'}">
                                       <view class="picker">{{attr.Value}}</view>
                                    </picker>
                                    <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                                </view>
                            </view>
                            <view class="form-group" v-if="attr.Type=='字典' || attr.Type=='字典-字符串'" :style="{'display':attr.hidden == 'True'?'none':''}">
                                <view v-if="subclassattr.control_style=='上下布局'">
                                    <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                                    <picker class="section_iput" @change="onchange" :range="attr.dictitem" range-key="CN_S_NAME" v-if="attr.select==false" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" :disabled="attr.edit?false:true">
                                        <label class="">{{ attr.Value }}</label>
                                    </picker>
                                    <select-cy :value="attr.Value" :name="attr.Name" :options="attr.dictitem" showClearIcon="true" @change="onchange2" v-else-if="attr.select==true" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" :disabled="attr.edit?false:true"></select-cy>
                                </view>
                                <view v-if="subclassattr.control_style=='左右布局'">
                                    <p class="tx_title2" :style="{'width':subclassattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                                    <picker class="section_iput attr_field" @change="onchange" :range="attr.dictitem" range-key="CN_S_NAME" v-if="attr.select==false" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - subclassattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) +'%'}">
                                        <label class="">{{ attr.Value }}</label>
                                    </picker>
                                    <select-cy :value="attr.Value" :name="attr.Name" :options="attr.dictitem" showClearIcon="true" @change="onchange2" v-else-if="attr.select==true" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}"></select-cy>
                                    <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                                </view>
                            </view>
                            <view class="form-group" v-if="attr.Type=='引用对象(单个)' || attr.Type=='引用对象(多个)'" :style="{'display':attr.hidden == 'True'?'none':''}">
                                <view v-if="subclassattr.control_style=='上下布局'">
                                    <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                                    <div class="text-right" v-if="attr.Type=='引用对象(单个)'">
                                        <a @tap="classAttr_AddRef" :data-classid="attr.RelCls.split('|')[0]" :data-classname="attr.RelCls.split('|')[1]" ><i class="ace-icon fa fa-plus-circle"></i></a>
                                    </div>
                                    <div class="text-right" v-if="attr.Type=='引用对象(多个)'">
                                        <picker class="select" @change="classAttr_AddRef" :range="attr.RelClsList" range-key="name" :data-index="index" :data-iindex="iindex">
                                            <label class="">{{ attr.Value }}</label>
                                        </picker>
                                        <a class="class_attr_add_ref"><i class="ace-icon fa fa-plus-circle"></i></a>
                                    </div>
                                    <input type="text" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" disabled="true" >
                                </view>
                                <view v-if="subclassattr.control_style=='左右布局'">
                                    <p class="tx_title2" :style="{'width':subclassattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                                    <input type="text" class="attr_field" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - subclassattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) - 9 +'%'}" disabled="true" >
                                    <div class="text-right2" v-if="attr.Type=='引用对象(单个)'">
                                        <a @tap="classAttr_AddRef" :data-classid="attr.RelCls.split('|')[0]" :data-classname="attr.RelCls.split('|')[1]" ><i class="ace-icon fa fa-plus-circle"></i></a>
                                    </div>
                                    <div class="text-right2" v-if="attr.Type=='引用对象(多个)'">
                                        <picker class="select" @change="classAttr_AddRef" :range="attr.RelClsList" range-key="name" :data-index="index" :data-iindex="iindex">
                                            <label class="">{{ attr.Value }}</label>
                                        </picker>
                                        <a class="class_attr_add_ref"><i class="ace-icon fa fa-plus-circle"></i></a>
                                    </div>
                                    <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                                </view>
                            </view>
                            <view class="form-group" v-if="attr.Type=='引用人员'" :style="{'display':attr.hidden == 'True'?'none':''}">
                                <view v-if="subclassattr.control_style=='上下布局'">
                                    <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                                    <div class="text-right">
                                        <a class="class_attr_add_per" @tap="classAttr_AddPer(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a>
                                    </div>
                                    <input type="text" :value="attr.Value" :style="{'width':attr.Width}" disabled="true" >
                                </view>
                                <view v-if="subclassattr.control_style=='左右布局'">
                                    <p class="tx_title2" :style="{'width':subclassattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                                    <input type="text" class="attr_field" :value="attr.Value" :style="{'width': attr.Width.split('%')[0] - subclassattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) - 9 +'%'}" disabled="true" >
                                    <div class="text-right2">
                                        <a class="class_attr_add_per" @tap="classAttr_AddPer(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a>
                                    </div>
                                    <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                                </view>
                            </view>
                            <view class="form-group" v-if="attr.Type=='引用项目'" :style="{'display':attr.hidden == 'True'?'none':''}">
                                <view v-if="subclassattr.control_style=='上下布局'">
                                    <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                                    <div class="text-right">
                                        <a href="#" class="class_attr_add_prj" @tap="classAttr_AddPrj(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a>
                                    </div>
                                    <input type="text" :value="attr.Value" :style="{'width':attr.Width}" disabled="true" >
                                </view>
                                <view v-if="subclassattr.control_style=='左右布局'">
                                    <p class="tx_title2" :style="{'width':subclassattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                                    <input type="text" class="attr_field" :value="attr.Value" :style="{'width': attr.Width.split('%')[0] - subclassattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) - 9 +'%'}" disabled="true" >
                                    <div class="text-right2">
                                        <a class="class_attr_add_prj" @tap="classAttr_AddPrj(index,iindex)"><i class="ace-icon fa fa-plus-circle"></i></a>
                                    </div>
                                    <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                                </view>
                            </view>
                            <view class="form-group" v-if="attr.Type=='编码'" :style="{'display':attr.hidden == 'True'?'none':''}">
                                <view v-if="subclassattr.control_style=='上下布局'">
                                    <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                                    <input type="text" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" :disabled="attr.edit?false:true" >
                                </view>
                                <view v-if="subclassattr.control_style=='左右布局'">
                                    <p class="tx_title2" :style="{'width':subclassattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                                    <input type="text" class="attr_field" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - subclassattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) +'%'}" :disabled="attr.edit?false:true" >
                                    <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                                </view>
                            </view>
                            <view class="form-group" v-if="attr.Type=='省市区'" :style="{'display':attr.hidden == 'True'?'none':''}">
                                <view v-if="subclassattr.control_style=='上下布局'">
                                    <text class="tx_title">{{attr.DispName}}:<i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i></text>
                                    <pickerAddress class="date_iput" @change="addresschange" :data-index="index" :data-iindex="iindex" :style="{'width':attr.Width}" >{{attr.Value}}</pickerAddress>
                                </view>
                                <view v-if="subclassattr.control_style=='左右布局'">
                                    <p class="tx_title2" :style="{'width':subclassattr.title_p_wdith+'%'}">{{attr.DispName}}:</p>
                                    <pickerAddress class="date_iput attr_field" @change="addresschange" :data-index="index" :data-iindex="iindex" :style="{'width': attr.Width.split('%')[0] - subclassattr.title_p_wdith - (attr.notempty==true || attr.NotEmpty=='1'?10:5) +'%'}">{{attr.Value}}</pickerAddress>
                                    <i class="i_tishi" v-if="attr.notempty==true || attr.NotEmpty=='1'">*</i>
                                </view>
                            </view>
                        </div>
                    </div>
                </view>
            </view>
        </view>
        <button type="default" @tap="sava" class="btn_add">{{title}}</button>
    </view>
</template>
<script>
    import pickerAddress from '../../js/pickerAddress/pickerAddress.vue'
    export default {
        components: {
            pickerAddress
        },
        data() {
            return {
                title: '新增',
                param:{},
                classAttrList:[],
                classGridStyle:[],
                edit_inital_event:"",  //弹窗初始化事件ID
                edit_ok_event:"",      //弹窗点击OK 触发事件ID
                edit_select_compose_event:"",  //选择组成对象时调用
                edit_compose_cls_id:"",
                global_attr:[],
                refdatastore: [],       //引用数据存储区// {attr:'G_PRJ_' + bindattr + '_ID', value:info.id}
                // inputValList:[{Name:"test"},{Name:"test2"},{Name:"test3"},{Name:"test4"},{Name:"test5"},{Name:"test6"},{Name:"test7"}],
                scanCodeVal:"",
                subClassAttrList:[],
                subPanelList:[],
                subClassGridStyle:[],
            }
        },
        onLoad(options) {
            // console.log(options);
            uni.setNavigationBarTitle({ title: options.titlename}); //设置顶部标题
            var param = JSON.parse(options.param);
            this.$data.title = param.Add_BtnName?param.Add_BtnName:options.titlename; //设置按钮文字
            console.log(param);
            if(!param.Master_Cls.View_Style){
                uni.showModal({title:"提示",content:"该功能点未配置界面窗口,请重新配置!",showCancel:false,confirmText:"取消"});
                return;
            }
            if(!param.Master_Cls.View_Style.Name){
                uni.showModal({title:"提示",content:"该功能点未配置窗口样式,请重新配置!",showCancel:false,confirmText:"取消"});
                return;
            }
            this.$data.param = param;
            // var edit_dlg = {
            //     Model: param.EditDlgMode,
            //     Name: param.Master_Cls.View_Style.Name
            // }
            //主数据类获取
            var dataInfo = {
                class_id: param.Master_Cls.ID
            };
            var $this = this;
            $this.$store.state.thisareaFuncID = param.Master_Cls.ID;
            // console.log($this.$store.getters.getclassAttrList);
            if($this.$store.getters.getclassAttrList){
                 $this.$data.classAttrList = $this.$store.getters.getclassAttrList.data;
                $this.classGridStyleInfo(param.Master_Cls.ID,$this.$data.param.Master_Cls.View_Style.Name,'Mast');
            }else{
                $this.$store.dispatch('classAttrList',dataInfo).then(success=>{
                    // console.log(success);
                    if (success.code=='00000') {
                        $this.$data.classAttrList = success.data;
                        $this.classGridStyleInfo(param.Master_Cls.ID,$this.$data.param.Master_Cls.View_Style.Name,'Mast');
                    }else{
                        uni.showModal({title:"错误1",content:success.msg,showCancel:false,confirmText:"取消"});
                    }
                }).catch(ex=>{
                    // console.log(ex);
                    uni.showModal({title:"错误1.1",content:ex.errMsg,showCancel:false,confirmText:"取消"});
                });
            }
            //从数据类获取
            var subdataInfo = {
                class_id: param.Sub_Cls.ID
            };
            $this.$store.state.thisareaFuncSubID = param.Sub_Cls.ID;
            if($this.$store.getters.getSubClassAttrList){
                 $this.$data.subClassAttrList = $this.$store.getters.getSubClassAttrList.data;
                        $this.classGridStyleInfo(param.Sub_Cls.ID,$this.$data.param.Sub_Cls.View_Style.Name,'Sub');
            }else{
                $this.$store.dispatch('subClassAttrList',subdataInfo).then(success=>{
                    // console.log(success);
                    if (success.code=='00000') {
                        $this.$data.subClassAttrList = success.data;
                        $this.classGridStyleInfo(param.Sub_Cls.ID,$this.$data.param.Sub_Cls.View_Style.Name,'Sub');
                    }else{
                        uni.showModal({title:"错误1_1",content:success.msg,showCancel:false,confirmText:"取消"});
                    }
                }).catch(ex=>{
                    // console.log(ex);
                    uni.showModal({title:"错误1_1.1",content:ex.errMsg,showCancel:false,confirmText:"取消"});
                });
            }
        },
        methods: {
            async classGridStyleInfo(clsid,styleName,clsType){
                var $this = this;
                var gridstyleInfo = {
                    class_id: clsid,
                    name: styleName,
                    type: '2'
                };
                $this.$store.state.thisEditName = styleName;
                // console.log($this.$store.getters.getclassGridStyleInfo);
                //获取主数据类界面样式
                if(clsType=='Mast'){
                    if($this.$store.getters.getclassGridStyleInfo){
                        $this.$data.classGridStyle = $this.$store.getters.getclassGridStyleInfo.data;
                        $this.class_attr_init();
                    }else{
                        //console.log(gridstyleInfo);
                        $this.$store.dispatch('classGridStyleInfo',gridstyleInfo).then(success=>{
                            // console.log(success);
                            if (success.code=='00000') {
                                success.data.StyleDef = JSON.parse(success.data.StyleDef);
                                $this.$data.classGridStyle = success.data;
                                $this.class_attr_init();
                            }else{
                                uni.showModal({title:"错误1.2",content:success.msg,showCancel:false,confirmText:"取消"});
                            }
                        }).catch(ex=>{
                            console.log(ex);
                            uni.showModal({title:"错误1.3",content:ex.errMsg,showCancel:false,confirmText:"取消"});
                        });
                    }
                } else if(clsType=='Sub'){  //获取从数据类界面样式
                    if($this.$store.getters.getSubClassGridStyleInfo){
                        $this.$data.subClassGridStyle = $this.$store.getters.getSubClassGridStyleInfo.data;
                        $this.subClass_attr_init();
                    }else{
                        //console.log(gridstyleInfo);
                        $this.$store.dispatch('subClassGridStyleInfo',gridstyleInfo).then(success=>{
                            // console.log(success);
                            if (success.code=='00000') {
                                success.data.StyleDef = JSON.parse(success.data.StyleDef);
                                $this.$data.subClassGridStyle = success.data;
                                $this.subClass_attr_init();
                            }else{
                                uni.showModal({title:"错误1.2",content:success.msg,showCancel:false,confirmText:"取消"});
                            }
                        }).catch(ex=>{
                            console.log(ex);
                            uni.showModal({title:"错误1.3",content:ex.errMsg,showCancel:false,confirmText:"取消"});
                        });
                    }
                }
            },
            ontap(e){ //扫码功能
                //console.log(e.target)
                getApp().onScan((result)=>{
                    //console.log(result.decodedata);
                    this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=result.decodedata;
                })
            },
            scan_ontap(e){ //扫码区扫码功能
                //console.log(e.target)
                getApp().onScan((result)=>{
                    console.log(result.decodedata);
                    if (result.decodedata != this.$data.scanCodeVal) {
                        this.$data.scanCodeVal=result.decodedata;
                        this.$data.subPanelList.push({
                            scanCodeVal:this.$data.scanCodeVal,
                            subClassAttrList:this.$data.subClassAttrList
                        });
                        var eventid = this.$data.param.Scan_Code.Input_Change_Event.ID;
                        if (eventid) {
                            var req=[];
                            var attrlist = this.$data.subClassAttrList;
                            for (var i = 0; i < attrlist.length; i++) {
                                var attr = attrlist[i].Attr;
                                for (var j = 0; j < attr.length; j++) {
                                    var ar = attr[j];
                                    if(ar.Type=='引用对象(多个)')
                                        if(ar.Value=='请') ar.Value='';
                                    if(ar.Type=='引用人员' || ar.Type=='引用项目')
                                        req.push({ attr: ar.Name, val: ar.ValID ?ar.ValID :'' });
                                    else if(ar.Type=='布尔值')
                                        req.push({ attr: ar.Name, val: ar.Value?'1':'0'});
                                    else
                                        req.push({ attr: ar.Name, val: ar.Value ?ar.Value :''});
                                }
                            }
                            var info = {
                                eventid: eventid,
                                edtype: "0",
                                projectid: '',
                                rclsid: '',
                                robjid: '',
                                userlogin: '',
                                clsid: this.$data.param.Sub_Cls.ID,
                                objid: "",
                                attr: req,
                                inputParamter:[{ attr: 'inout_3037', val: this.$data.scanCodeVal }]
                            }
                            this.scan_DataObjRunCustomEvent(info, "");
                        }
                    }
                })
            },
            onarrow(index,open){
                // console.log(index+'--'+open);
                this.$data.classAttrList[index].Open=open==true?false:true;
            },
            ondateTime(e) {
                //console.log(e.target)
                this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=e.target.value;
            },
            onchange(e) {
                console.log(e.target);
                var value=this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].dictitem[e.target.value];
                var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];
                console.log(data_attr);
                if (value.Name != data_attr.Value) {
                    this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=value.Name;
                    console.log(this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value);
                    var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;
                    if (eventid) {
                        // self.event_no_sub = 1;
                        var req=[];
                        var attrlist = this.$data.classAttrList;
                        for (var i = 0; i < attrlist.length; i++) {
                            var attr = attrlist[i].Attr;
                            for (var j = 0; j < attr.length; j++) {
                                var ar = attr[j];
                                if(ar.Type=='引用对象(多个)')
                                    if(ar.Value=='请') ar.Value='';
                                if(ar.Type=='引用人员' || ar.Type=='引用项目')
                                    req.push({ attr: ar.Name, val: ar.ValID ?ar.ValID :'' });
                                else if(ar.Type=='布尔值')
                                    req.push({ attr: ar.Name, val: ar.Value?'1':'0'});
                                else
                                    req.push({ attr: ar.Name, val: ar.Value ?ar.Value :''});
                            }
                        }
                        var info = {
                            eventid: eventid,
                            edtype: "0",
                            projectid: '',
                            rclsid: '',
                            robjid: '',
                            userlogin: '',
                            clsid: this.$data.param.Master_Cls.ID,
                            objid: "",
                            attr: req,
                        }
                        this.DataObjRunCustomEvent(info);
                    }
                }
            },
            onchange2(item,value,delvalue) {
                // console.log(item);
                // console.log(value);
                // console.log(delvalue);
                if(item.length==0){ //为空时,清空属性value
                    var index ,iindex,dindex=0;
                    for(var i in this.$data.classAttrList){
                        for(var j in this.$data.classAttrList[i].Attr){
                            for(var d in this.$data.classAttrList[i].Attr[j].dictitem){
                                if(delvalue[0].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name){
                                    this.$data.classAttrList[i].Attr[j].Value="";
                                }
                            }
                        }
                    }
                }
                for(var v in item){
                    var index ,iindex,dindex=0;
                    for(var i in this.$data.classAttrList){
                        for(var j in this.$data.classAttrList[i].Attr){
                            for(var d in this.$data.classAttrList[i].Attr[j].dictitem){
                                if(item[v].Name == this.$data.classAttrList[i].Attr[j].dictitem[d].Name){
                                    index=i;iindex=j;dindex=d;
                                }
                            }
                        }
                    }
                    var itemvalue = item[v];
                    var data_attr = this.$data.classAttrList[index].Attr[iindex];
                    console.log(data_attr);
                    if (itemvalue.Name != data_attr.Value) {
                        this.$data.classAttrList[index].Attr[iindex].Value=value;
                        console.log(this.$data.classAttrList[index].Attr[iindex].Value);
                        var eventid = this.$data.classAttrList[index].Attr[iindex].action;
                        if (eventid) {
                            // self.event_no_sub = 1;
                            var req=[];
                            var attrlist = this.$data.classAttrList;
                            for (var i = 0; i < attrlist.length; i++) {
                                var attr = attrlist[i].Attr;
                                for (var j = 0; j < attr.length; j++) {
                                    var ar = attr[j];
                                    if(ar.Type=='引用对象(多个)')
                                        if(ar.Value=='请') ar.Value='';
                                    if(ar.Type=='引用人员' || ar.Type=='引用项目')
                                        req.push({ attr: ar.Name, val: ar.ValID ?ar.ValID :'' });
                                    else if(ar.Type=='布尔值')
                                        req.push({ attr: ar.Name, val: ar.Value?'1':'0'});
                                    else if(ar.Type=='字典' || ar.Type=='字典-字符串')
                                        req.push({ attr: ar.Name, val: itemvalue.Name});
                                    else
                                        req.push({ attr: ar.Name, val: ar.Value ?ar.Value :''});
                                }
                            }
                            var info = {
                                eventid: eventid,
                                edtype: "0",
                                projectid: '',
                                rclsid: '',
                                robjid: '',
                                userlogin: '',
                                clsid: this.$data.param.Master_Cls.ID,
                                objid: "",
                                attr: req,
                            }
                            this.DataObjRunCustomEvent(info);
                        }
                    }
                }
            },
            onevent(e){
                // console.log(e.target);
                var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];
                // console.log(data_attr);
                if (e.target.value != data_attr.Value) {
                    this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=e.target.value;
                    var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;
                    if (eventid) {
                        // self.event_no_sub = 1;
                        var req=[];
                        var attrlist = this.$data.classAttrList;
                        for (var i = 0; i < attrlist.length; i++) {
                            var attr = attrlist[i].Attr;
                            for (var j = 0; j < attr.length; j++) {
                                var ar = attr[j];
                                if(ar.Type=='引用对象(多个)')
                                    if(ar.Value=='请') ar.Value='';
                                if(ar.Type=='引用人员' || ar.Type=='引用项目')
                                    req.push({ attr: ar.Name, val: ar.ValID ?ar.ValID :'' });
                                else if(ar.Type=='布尔值')
                                    req.push({ attr: ar.Name, val: ar.Value?'1':'0'});
                                else
                                    req.push({ attr: ar.Name, val: ar.Value ?ar.Value :''});
                            }
                        }
                        var info = {
                            eventid: eventid,
                            edtype: "0",
                            projectid: '',
                            rclsid: '',
                            robjid: '',
                            userlogin: '',
                            clsid: this.$data.param.Master_Cls.ID,
                            objid: "",
                            attr: req,
                        }
                        this.DataObjRunCustomEvent(info, data_attr);
                    }
                }
            },
            oncheck(e) {
                // console.log(e.target);
                var ischecked = e.target.dataset.ischeck?false:true;
                var data_attr = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']];
                // console.log(data_attr);
                if (ischecked != data_attr.Value) {
                    this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=ischecked;
                    var eventid = this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].action;
                    if (eventid) {
                        // self.event_no_sub = 1;
                        var req=[];
                        var attrlist = this.$data.classAttrList;
                        for (var i = 0; i < attrlist.length; i++) {
                            var attr = attrlist[i].Attr;
                            for (var j = 0; j < attr.length; j++) {
                                var ar = attr[j];
                                if(ar.Type=='引用对象(多个)')
                                    if(ar.Value=='请') ar.Value='';
                                if(ar.Type=='引用人员' || ar.Type=='引用项目')
                                    req.push({ attr: ar.Name, val: ar.ValID ?ar.ValID :'' });
                                else if(ar.Type=='布尔值')
                                    req.push({ attr: ar.Name, val: ar.Value?'1':'0'});
                                else
                                    req.push({ attr: ar.Name, val: ar.Value ?ar.Value :''});
                            }
                        }
                        var info = {
                            eventid: eventid,
                            edtype: "0",
                            projectid: '',
                            rclsid: '',
                            robjid: '',
                            userlogin: '',
                            clsid: this.$data.param.Master_Cls.ID,
                            objid: "",
                            attr: req,
                        }
                        this.DataObjRunCustomEvent(info);
                    }
                }
            },
            inputValListIsDel(index){
                // console.log(index);
                this.$data.inputValList.splice(index, 1); //删除tabPagejson的内容
                // console.log(this.$data.inputValList);
            },
            addresschange(e) {
                // console.log(e.target);
                console.log(e.data.join(';'))
                this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=e.data.join(';');
            },
            classAttr_extButton(index,iindex){
                var $this = this;
                var before_click_button = $this.$data.classAttrList[index].Attr[iindex].before_click_button;
                var button_callback = $this.$data.classAttrList[index].Attr[iindex].button_callback;
                if(!before_click_button){
                    uni.showModal({title:"提示",content:"before_click_button-event_id为空!",showCancel:false,confirmText:"取消"});
                    return;
                }
                if(!button_callback){
                    uni.showModal({title:"提示",content:"button_callback-event_id为空!",showCancel:false,confirmText:"取消"});
                    return;
                }
                var data_attr = this.$data.classAttrList[index].Attr[iindex];
                this.DataObjRunCustomEvent_Return(before_click_button, data_attr, button_callback, index,iindex);
            },
            scan_classAttr_extButton(e){  //---------未完成-----------
                var $this = this;
                var Before_Select_Event = $this.$data.param.Scan_Code.Before_Select_Event.ID;
                var After_Select_Event = $this.$data.param.Scan_Code.After_Select_Event.ID;
                if(!Before_Select_Event){
                    uni.showModal({title:"提示",content:"选择按钮前事件为空!",showCancel:false,confirmText:"取消"});
                    return;
                }
                if(!After_Select_Event){
                    uni.showModal({title:"提示",content:"新增按钮后事件为空!",showCancel:false,confirmText:"取消"});
                    return;
                }
                // var data_attr = this.$data.classAttrList[index].Attr[iindex];
                this.DataObjRunCustomEvent_Return(Before_Select_Event, '', After_Select_Event, '', '');
            },
            classAttr_AddPer(index,iindex){
                var param={index:index,iindex:iindex};
                var $this = this;
                uni.navigateTo({
                    url:'../selpsn/index?mulit=false&param='+JSON.stringify(param),
                    events:{
                        AddPer(data,param){
                            // console.log(param);
                            console.log(data);
                            $this.$data.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name;
                            $this.$data.classAttrList[param.index].Attr[param.iindex].ValID=data[0].Login+';'+data[0].Name;
                            var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;
                            if (eventid) {
                                eventid = eventid.trim();
                                if (eventid) {
                                    var info = {
                                        eventid: eventid,
                                        edtype: "4",
                                        projectid: "",
                                        rclsid: "",
                                        robjid: "",
                                        userlogin: data[0].Login,
                                        clsid: $this.$data.param.Master_Cls.ID,
                                        objid: "",
                                        attr: [],
                                    }
                                    // var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];
                                    $this.DataObjRunCustomEvent(info);
                                }
                            }
                        }
                    }
                });
            },
            classAttr_AddRef(e){
                console.log(e.target);
                uni.showModal({title:"提示",content:"此功能还未实现!",showCancel:false,confirmText:"取消"});
                // var value=this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].RelCls[e.target.value];
                // this.$data.classAttrList[e.target.dataset['index']].Attr[e.target.dataset['iindex']].Value=value;
            },
            classAttr_AddPrj(index,iindex){
                var param={index:index,iindex:iindex};
                var $this = this;
                uni.navigateTo({
                    url:'../selPrj/index?relation=-1&param='+JSON.stringify(param),
                    events:{
                        AddPer(data,param){
                            // console.log(param);
                            // console.log(data);
                            $this.$data.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name;
                            $this.$data.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name;
                            var eventid = $this.$data.classAttrList[param.index].Attr[param.iindex].action;
                            if (eventid) {
                                eventid = eventid.trim();
                                if (eventid) {
                                    var info = {
                                        eventid: eventid,
                                        edtype: "2",
                                        projectid: data[0].ID,
                                        rclsid: "",
                                        robjid: "",
                                        userlogin: "",
                                        clsid: $this.$data.param.Master_Cls.ID,
                                        objid: "",
                                        attr: [],
                                    }
                                    // var data_attr = $this.$data.classAttrList[param.index].Attr[param.iindex];
                                    $this.DataObjRunCustomEvent(info);
                                }
                            }
                        }
                    }
                });
            },
            sava(){
                if (this.$data.edit_ok_event)
                    this.OKDataObjRunCustomEvent();
                else
                    this.add();
            },
            add(){
                uni.showLoading({
                    title:"加载中..."
                });
                var req=[];
                var attrlist = this.$data.classAttrList;
                for (var i = 0; i < attrlist.length; i++) {
                    var attr = attrlist[i].Attr;
                    for (var j = 0; j < attr.length; j++) {
                        var ar = attr[j];
                        if(ar.Value=='请选择' || ar.Value=='——请选择——') ar.Value='';
                        if(ar.Type=='引用对象(多个)')
                            if(ar.Value=='请') ar.Value='';
                        if(ar.Type=='引用人员' || ar.Type=='引用项目')
                            req.push({ name: ar.Name, value: ar.ValID ?ar.ValID :'' });
                        else if(ar.Type=='布尔值')
                            req.push({ name: ar.Name, value: ar.Value?'1':'0'});
                        else if(ar.Type=='字典' || ar.Type=='字典-字符串'){
                            if(ar.select==true){ //判断下拉是否多选
                                var valStr ="";
                                for(var v in ar.Value){
                                    if(valStr)
                                        valStr+=";";
                                    valStr+=ar.Value[v];
                                }
                                req.push({ name: ar.Name, value: valStr});
                            }else
                                req.push({ name: ar.Name, value: ar.Value});
                        }
                        else
                            req.push({ name: ar.Name, value: ar.Value ?ar.Value :''});
                        if ((ar.NotEmpty == '1' || ar.notempty == true) && !ar.Value) {
                        // if(ar.notEmpty=='1'){
                            uni.hideLoading();
                            // uni.showToast({title:ar.DispName+'不能为空!',icon:"success",duration:3000});
                            uni.showModal({title:"提示",content:ar.DispName+'不能为空!',showCancel:false,confirmText:"取消"});
                            return;
                        }
                    }
                }
                var enviroment = {
                     'function': '3000', // 功能点编号
                     cls_id: this.$data.param.Master_Cls.ID,     // 功能点主数据类标识
                     'button': 'top',   // top/bottom
                     button_name: '新增',
                     master: {
                         cls_id: this.$data.param.Master_Cls.ID,
                     }
                };
                var dataInfo={
                    class_id: this.$data.param.Master_Cls.ID, data_obj_id: '', masterclsid: '',
                    req: JSON.stringify(req), upfile: JSON.stringify([]), post_data: JSON.stringify({}),
                    compose: JSON.stringify([]), refdatastore: JSON.stringify([]), extinfo: JSON.stringify(enviroment),
                    not_trigger_sys_event: ''
                };
                // return
                console.log(dataInfo);
                this.$store.dispatch('addclassattr',dataInfo).then(success=>{
                    console.log(success);
                    uni.hideLoading();
                    if (success.code=='00000') {
                        var action = JSON.parse(success.data.Action);
                        if(action.ret=='0'){
                            if(action.result_type=='0'){
                                uni.showToast({title:action.result,icon:"success",duration:3000});
                            }
                            // "{"ret":0, "result_type":0, "result":"创建成功123123123","info":""}"
                        }
                        //刷新
                        uni.redirectTo({
                            url:'../modal/classAttr?param='+JSON.stringify(this.$data.param)+"&titlename="+this.$data.title
                        });
                        // this.class_attr_init();
                    }else{
                        uni.showModal({title:"错误",content:success.msg,showCancel:false,confirmText:"取消"});
                    }
                }).catch(ex=>{
                    console.log(ex);
                    uni.hideLoading();
                    uni.showModal({title:"提示",content:ex.errMsg,showCancel:false,confirmText:"取消"});
                });
            },
            class_attr_init(){
                var attrlist = this.$data.classGridStyle.StyleDef.show_style
                var newattrlist = [];
                if (this.$data.classAttrList.length > 0) {
                    for (var i = 0; i < attrlist.length; i++) {
                        var open = attrlist[i].open;
                        var name = attrlist[i].attrgroup_name;
                        var attrs = attrlist[i].attrs;
                        for (var s = 0; s < this.$data.classAttrList.length; s++) {
                            var clsattr = this.$data.classAttrList[s];
                            if (name == clsattr.Name) {
                                var attr = [];
                                for (var j = 0; j < attrs.length; j++) {
                                    for (var l = 0; l < clsattr.Attr.length; l++) {
                                        var ca = clsattr.Attr[l];
                                        if (attrs[j].attr == ca.Name) {
                                            ca.action = attrs[j].action;
                                            ca.edit = attrs[j].edit;
                                            ca.notempty = attrs[j].notempty;
                                            ca.ext_button = attrs[j].ext_button;
                                            ca.button_img = attrs[j].button_img;
                                            ca.button_tooltip = attrs[j].button_tooltip;
                                            ca.before_click_button = attrs[j].before_click_button;
                                            ca.button_callback = attrs[j].button_callback;
                                            ca.hidden = attrs[j].hidden;
                                            ca.select = attrs[j].select==undefined?false:attrs[j].select;
                                            ca.Value ="";
                                            if(ca.dictitem){
                                                var dictitemlist=[];
                                                for (var d = 0; d < ca.dictitem.length; d++) {
                                                    ca.dictitem[d].label=ca.dictitem[d].CN_S_NAME;
                                                    ca.dictitem[d].value=ca.dictitem[d].CN_S_NAME;
                                                }
                                                if(ca.select == true)
                                                    ca.Value = [];//ca.dictitem[0].CN_S_NAME;
                                                else
                                                    ca.Value = '请选择';//ca.dictitem[0].CN_S_NAME;
                                            }
                                            if(ca.Type=='日期' || ca.Type=='时间'){
                                                var nowDate = new Date();
                                                var date = {year: nowDate.getFullYear(),month: nowDate.getMonth() + 1,day: nowDate.getDate()}
                                                ca.Value = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day);
                                            }
                                            if(ca.Type=='引用对象(多个)'){
                                                var relClsList=[];
                                                var attr_rescls = ca.RelCls.split(',');
                                                for(var ii in attr_rescls){
                                                    var rescls = attr_rescls[ii].split('|');
                                                    relClsList.push({id:rescls[0],name:rescls[1]});
                                                }
                                                ca.RelClsList = relClsList;
                                                ca.Value = '请';
                                            }
                                            if(ca.Type=='省市区')
                                                ca.Value = '请选择';
                                            if(ca.Type=='布尔值')
                                                ca.Value = false;
                                            attr.push(ca);
                                        }
                                    }
                                }
                                newattrlist.push({
                                    BkColor: clsattr.BkColor,
                                    HasAce: clsattr.HasAce,
                                    ImgFontStyle: clsattr.ImgFontStyle,
                                    Name: clsattr.Name,
                                    Order: clsattr.Order,
                                    Open: open,
                                    Attr: attr,
                                    control_style:this.$data.classGridStyle.StyleDef.control_style,
                                    title_p_wdith:this.$data.classGridStyle.StyleDef.title_p_wdith
                                })
                            }
                        }
                    }
                    if (newattrlist.length > 0) {
                        this.$data.classAttrList = newattrlist;
                    }
                    var req=[];
                    if (this.$data.classGridStyle.StyleDef) {
                         if (this.$data.classGridStyle.StyleDef.show_style.length > 0) {
                            var attrlist = this.$data.classGridStyle.StyleDef.show_style
                            // $el.find('.attr_field').prop('readonly', true);
                            // $el.find('.attr_field').prop('disabled', true);
                            for (var i = 0; i < attrlist.length; i++) {
                                var attr = attrlist[i].attrs
                                for (var j = 0; j < attr.length; j++) {
                                    var ar = attr[j];
                                    req.push({ attr: ar.attr, val: ar.value?ar.value:'' });
                                }
                            }
                        }
                    }
                    var eventlist = this.$data.classGridStyle.StyleDef.event;
                    if (eventlist) {
                        if (eventlist.length > 0) {
                            for (var i = 0; i < eventlist.length; i++) {
                                if (eventlist[i].event_id == 'before_ok') {
                                    this.$data.edit_ok_event = eventlist[i];
                                } else if (eventlist[i].event_id == 'initial') {
                                    this.$data.edit_inital_event = eventlist[i];
                                } else if (eventlist[i].event_id == 'before_select_compose') {
                                    this.$data.edit_select_compose_event = eventlist[i].scrip_id;
                                    this.$data.edit_compose_cls_id = eventlist[i].compose_cls_id;
                                }
                            }
                        }
                    }
                    console.log(req);
                    if (this.$data.edit_inital_event) {
                        var eventid = this.$data.edit_inital_event.scrip_id;
                        var info = {
                            eventid: eventid,
                            edtype: "0",
                            projectid: '',
                            rclsid: '',
                            robjid: '',
                            userlogin: '',
                            clsid: this.$data.param.Master_Cls.ID,
                            objid: "",
                            attr: req,
                        }
                        this.ini_DataObjRunCustomEvent(info);
                    }
                    console.log(this.$data.classGridStyle);
                    console.log(this.$data.classAttrList);
                } else {
                    uni.showModal({title:"提示",content:"未找到可显示的的属性",showCancel:false,confirmText:"取消"});
                }
            },
            subClass_attr_init(){
                var attrlist = this.$data.subClassGridStyle.StyleDef.show_style
                var newattrlist = [];
                if (this.$data.subClassAttrList.length > 0) {
                    for (var i = 0; i < attrlist.length; i++) {
                        var open = attrlist[i].open;
                        var name = attrlist[i].attrgroup_name;
                        var attrs = attrlist[i].attrs;
                        for (var s = 0; s < this.$data.subClassAttrList.length; s++) {
                            var clsattr = this.$data.subClassAttrList[s];
                            if (name == clsattr.Name) {
                                var attr = [];
                                for (var j = 0; j < attrs.length; j++) {
                                    for (var l = 0; l < clsattr.Attr.length; l++) {
                                        var ca = clsattr.Attr[l];
                                        if (attrs[j].attr == ca.Name) {
                                            ca.action = attrs[j].action;
                                            ca.edit = attrs[j].edit;
                                            ca.notempty = attrs[j].notempty;
                                            ca.ext_button = attrs[j].ext_button;
                                            ca.button_img = attrs[j].button_img;
                                            ca.button_tooltip = attrs[j].button_tooltip;
                                            ca.before_click_button = attrs[j].before_click_button;
                                            ca.button_callback = attrs[j].button_callback;
                                            ca.hidden = attrs[j].hidden;
                                            ca.select = attrs[j].select==undefined?false:attrs[j].select;
                                            ca.Value ="";
                                            if(ca.dictitem){
                                                var dictitemlist=[];
                                                for (var d = 0; d < ca.dictitem.length; d++) {
                                                    ca.dictitem[d].label=ca.dictitem[d].CN_S_NAME;
                                                    ca.dictitem[d].value=ca.dictitem[d].CN_S_NAME;
                                                }
                                                if(ca.select == true)
                                                    ca.Value = [];//ca.dictitem[0].CN_S_NAME;
                                                else
                                                    ca.Value = '请选择';//ca.dictitem[0].CN_S_NAME;
                                            }
                                            if(ca.Type=='日期' || ca.Type=='时间'){
                                                var nowDate = new Date();
                                                var date = {year: nowDate.getFullYear(),month: nowDate.getMonth() + 1,day: nowDate.getDate()}
                                                ca.Value = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day);
                                            }
                                            if(ca.Type=='引用对象(多个)'){
                                                var relClsList=[];
                                                var attr_rescls = ca.RelCls.split(',');
                                                for(var ii in attr_rescls){
                                                    var rescls = attr_rescls[ii].split('|');
                                                    relClsList.push({id:rescls[0],name:rescls[1]});
                                                }
                                                ca.RelClsList = relClsList;
                                                ca.Value = '请';
                                            }
                                            if(ca.Type=='省市区')
                                                ca.Value = '请选择';
                                            if(ca.Type=='布尔值')
                                                ca.Value = false;
                                            attr.push(ca);
                                        }
                                    }
                                }
                                newattrlist.push({
                                    BkColor: clsattr.BkColor,
                                    HasAce: clsattr.HasAce,
                                    ImgFontStyle: clsattr.ImgFontStyle,
                                    Name: clsattr.Name,
                                    Order: clsattr.Order,
                                    Open: open,
                                    Attr: attr,
                                    control_style:this.$data.subClassGridStyle.StyleDef.control_style,
                                    title_p_wdith:this.$data.subClassGridStyle.StyleDef.title_p_wdith
                                })
                            }
                        }
                    }
                    if (newattrlist.length > 0) {
                        this.$data.subClassAttrList = newattrlist;
                    }
                    var req=[];
                    if (this.$data.subClassGridStyle.StyleDef) {
                         if (this.$data.subClassGridStyle.StyleDef.show_style.length > 0) {
                            var attrlist = this.$data.subClassGridStyle.StyleDef.show_style
                            // $el.find('.attr_field').prop('readonly', true);
                            // $el.find('.attr_field').prop('disabled', true);
                            for (var i = 0; i < attrlist.length; i++) {
                                var attr = attrlist[i].attrs
                                for (var j = 0; j < attr.length; j++) {
                                    var ar = attr[j];
                                    req.push({ attr: ar.attr, val: ar.value?ar.value:'' });
                                }
                            }
                        }
                    }
                    var eventlist = this.$data.subClassGridStyle.StyleDef.event;
                    if (eventlist) {
                        if (eventlist.length > 0) {
                            for (var i = 0; i < eventlist.length; i++) {
                                if (eventlist[i].event_id == 'before_ok') {
                                    this.$data.edit_ok_event = eventlist[i];
                                } else if (eventlist[i].event_id == 'initial') {
                                    this.$data.edit_inital_event = eventlist[i];
                                } else if (eventlist[i].event_id == 'before_select_compose') {
                                    this.$data.edit_select_compose_event = eventlist[i].scrip_id;
                                    this.$data.edit_compose_cls_id = eventlist[i].compose_cls_id;
                                }
                            }
                        }
                    }
                    console.log(req);
                    if (this.$data.edit_inital_event) {
                        var eventid = this.$data.edit_inital_event.scrip_id;
                        var info = {
                            eventid: eventid,
                            edtype: "0",
                            projectid: '',
                            rclsid: '',
                            robjid: '',
                            userlogin: '',
                            clsid: this.$data.param.Sub_Cls.ID,
                            objid: "",
                            attr: req,
                        }
                        this.scan_ini_DataObjRunCustomEvent(info);
                    }
                    console.log(this.$data.subClassGridStyle);
                    console.log(this.$data.subClassAttrList);
                } else {
                    uni.showModal({title:"提示",content:"未找到可显示的的属性",showCancel:false,confirmText:"取消"});
                }
            },
            ini_DataObjRunCustomEvent(info){
                var param = {
                    EditStyle: this.$data.param.Master_Cls.View_Style.Name,
                    ViewStyle: this.$data.param.Master_Cls.View_Style.Name,
                    NotTriggerSysEvent: 0,
                    enviroment: {
                        'function': '3000', // 功能点编号
                        cls_id: this.$data.param.Master_Cls.ID,     // 功能点主数据类标识
                        'button': 'top',   // top/bottom
                        button_name: '新增',
                        master: {
                            cls_id: this.$data.param.Master_Cls.ID, // button=bottom时 master的cls_id
                            //obj_id: ''  // button=bottom时 master的obj_id
                        }
                    }
                }
                var inputparameter = '';
                var global_attr = '';
                var dataInfo = {
                    edtype: info.edtype, eventid: info.eventid, projectid: info.projectid,
                    rclsid: info.rclsid, robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid,
                    attr: JSON.stringify(info.attr), extinfo: JSON.stringify(param), inputparameter: inputparameter, global_attr: global_attr
                }
                console.log(dataInfo);
                this.$store.dispatch('DataObjRunCustomEventInfo',dataInfo).then(success=>{
                    console.log(success);
                    if (success.code=='00000') {
                        var data = JSON.parse(success.data);
                        var actionlist = data.action;
                        if (actionlist) {
                            for (var j = 0; j < actionlist.length; j++) {
                                var action = actionlist[j]
                                var action_type = action.action_type;
                                var value = action.value;
                                if (action_type == 'set_dlg_attr') {
                                    if (value) {
                                        var val = value;
                                        if (typeof value == 'string') {
                                            val = JSON.parse(value);
                                        }
                                        console.log(val);
                                        for (var i = 0; i < val.length; i++) {
                                            for (var a = 0; a < this.$data.classAttrList.length; a++) {
                                                for (var l = 0; l < this.$data.classAttrList[a].Attr.length; l++) {
                                                    var ca = this.$data.classAttrList[a].Attr[l];
                                                    if (val[i].attr  == ca.Name) {
                                                        if(ca.Type=='字典' || ca.Type=='字典-字符串'){
                                                            var dictItemList=[];
                                                            for(var d in val[i].choice_list){
                                                                var val =val[i].choice_list[d];
                                                                dictItemList.push({"CN_S_NAME":val,"Name":val,"label":val,"value":val});
                                                            }
                                                            ca.dictitem = dictItemList;
                                                            // attr[j].dictitem = val[i].choice_list;
                                                        }else{
                                                            // ca.value = val[i].value;
                                                        }
                                                    }
                                                }
                                            }
                                            var length = 0;
                                            if (!this.$data.refdatastore.filter(function (s) {
                                                return val[i].attr == s.attr
                                            }).length) {
                                                length = 1;
                                                this.$data.refdatastore.push(val[i]);
                                            }
                                            if (length == 0) {
                                                for (var j = 0; j < this.$data.refdatastore.length; j++) {
                                                    if (this.$data.refdatastore[j].attr == val[i].attr) {
                                                        this.$data.refdatastore[j].value = val[i].value;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                if (action_type == 'open_select_userdlg') {
                                    uni.showModal({title:"错误2.2",content:"open_select_userdlg这个action_type还未处理!",showCancel:false,confirmText:"取消"});
                                }
                            }
                        }
                    }else{
                        uni.showModal({title:"错误2",content:success.msg,showCancel:false,confirmText:"取消"});
                    }
                }).catch(ex=>{
                    // console.log(ex);
                    uni.showModal({title:"错误2.1",content:ex.errMsg,showCancel:false,confirmText:"取消"});
                });
            },
            DataObjRunCustomEvent(info,data_attr){
                var $this = this;
                var enviroment = {
                    'function': '3000', // 功能点编号
                    cls_id: this.$data.param.Master_Cls.ID,     // 功能点主数据类标识
                    'button': 'top',   // top/bottom
                    button_name: '新增',
                    master: {
                        cls_id: this.$data.param.Master_Cls.ID, // button=bottom时 master的cls_id
                        //obj_id: ''  // button=bottom时 master的obj_id
                    }
                };
                enviroment.edit_dlg = {
                    type: 'small',//小窗口
                    class_id: this.$data.param.Master_Cls.ID,//当前数据类id
                }
                if (data_attr) {
                    enviroment.edit_dlg.form_control = {//所属的表单控件
                        name: data_attr.Name,//字段属性
                        text: data_attr.DispName,//显示文本
                        group_name: data_attr.GroupName,//属性组
                        type: data_attr.Type,//字段类型
                        readonly: data_attr.ReadOnly,//是否只读
                        button_img: data_attr.button_img,//引用按钮的图标
                        button_tooltip: data_attr.button_tooltip//引用按钮的tooltip
                    }
                }
                var dataInfo = {
                    edtype: info.edtype, eventid: info.eventid, projectid: info.projectid.replace('{','').replace('}',''),
                    rclsid: info.rclsid, robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid,
                    attr: JSON.stringify(info.attr), extinfo: JSON.stringify(enviroment), inputparameter: '', global_attr: JSON.stringify(this.$data.global_attr)
                }
                console.log(dataInfo);
                this.$store.dispatch('DataObjRunCustomEventInfo',dataInfo).then(success=>{
                    console.log(success);
                    if (success.code=='00000') {
                        var data = JSON.parse(success.data);
                        var actionlist = data.action;
                        if (actionlist) {
                            console.log(actionlist);
                            for (var i = 0; i < actionlist.length; i++) {
                                var action = actionlist[i];
                                if (action.action_type == 'set_dlg_attr') {
                                    var result = action.value;
                                    for (var i = 0; i < result.length; i++) {
                                            if (result[i].choice_list) {
                                            for (var c = 0; c < $this.$data.classAttrList.length; c++) {
                                                var attr = $this.$data.classAttrList[c].Attr;
                                                for (var j = 0; j < attr.length; j++) {
                                                    if(attr[j].Name==result[i].attr){
                                                        if(attr[j].Type=='字典' || attr[j].Type=='字典-字符串'){
                                                            var dictItemList=[];
                                                            for(var d in result[i].choice_list){
                                                                var val =result[i].choice_list[d];
                                                                dictItemList.push({"CN_S_NAME":val,"Name":val,"label":val,"value":val});
                                                            }
                                                            attr[j].dictitem = dictItemList;
                                                            // attr[j].dictitem = result[i].choice_list;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        for (var c = 0; c < $this.$data.classAttrList.length; c++) {
                                            var attr = $this.$data.classAttrList[c].Attr;
                                            for (var j = 0; j < attr.length; j++) {
                                                console.log(attr[j].Name+'=='+result[i].attr);
                                                if(attr[j].Name==result[i].attr){
                                                    attr[j].Value = result[i].value;
                                                }
                                            }
                                        }
                                        var length = 0;
                                        if (!$this.$data.refdatastore.filter(function (s) {
                                            return result[i].attr == s.attr
                                        }).length) {
                                            length = 1;
                                            $this.$data.refdatastore.push(result[i]);
                                        }
                                        if (length == 0) {
                                            for (var j = 0; j < $this.$data.refdatastore.length; j++) {
                                                if ($this.$data.refdatastore[j].attr == result[i].attr) {
                                                    $this.$data.refdatastore[j].value = result[i].value;
                                                }
                                            }
                                        }
                                    }
                                } else if (data.action[i].action_type == 'set_global_attr') {
                                    $this.$data.global_attr = data.action[i].value || [];
                                }
                            }
                        }
                        if (data.result) {
                            var result = data.result;
                            for (var i = 0; i < result.length; i++) {
                                for (var c = 0; c < $this.$data.classAttrList.length; c++) {
                                    var attr = $this.$data.classAttrList[c].Attr;
                                    for (var j = 0; j < attr.length; j++) {
                                        if(attr[j].Name==result[i].attr){
                                            attr[j].Value = result[i].value;
                                        }
                                    }
                                }
                                var length = 0;
                                if (!$this.$data.refdatastore.filter(function (s) {
                                    return result[i].attr == s.attr
                                }).length) {
                                    length = 1;
                                    $this.$data.refdatastore.push(result[i]);
                                }
                                if (length == 0) {
                                    for (var j = 0; j < $this.$data.refdatastore.length; j++) {
                                        if ($this.$data.refdatastore[j].attr == result[i].attr) {
                                            $this.$data.refdatastore[j].value = result[i].value;
                                        }
                                    }
                                }
                            }
                        }
                    }else{
                        uni.showModal({title:"错误3",content:success.msg,showCancel:false,confirmText:"取消"});
                    }
                }).catch(ex=>{
                    // console.log(ex);
                    uni.showModal({title:"错误3.1",content:ex.errMsg,showCancel:false,confirmText:"取消"});
                });
            },
            OKDataObjRunCustomEvent(){
                var enviroment = {
                    'function': '3000', // 功能点编号
                    cls_id: this.$data.param.Master_Cls.ID,     // 功能点主数据类标识
                    'button': 'top',   // top/bottom
                    button_name: '新增',
                    master: {
                        cls_id: this.$data.param.Master_Cls.ID, // button=bottom时 master的cls_id
                    }
                };
                var eventid = this.$data.edit_ok_event.scrip_id;
                var req=[];
                var attrlist = this.$data.classAttrList;
                for (var i = 0; i < attrlist.length; i++) {
                    var attr = attrlist[i].Attr;
                    for (var j = 0; j < attr.length; j++) {
                        var ar = attr[j];
                        if(ar.Value=='请选择' || ar.Value=='——请选择——') ar.Value='';
                        if(ar.Type=='引用对象(多个)')
                            if(ar.Value=='请') ar.Value='';
                        if(ar.Type=='引用人员' || ar.Type=='引用项目')
                            req.push({ attr: ar.Name, val: ar.ValID ?ar.ValID :'' });
                        else if(ar.Type=='布尔值')
                            req.push({ attr: ar.Name, val: ar.Value?'1':'0'});
                        else
                            req.push({ attr: ar.Name, val: ar.Value });
                    }
                }
                if (this.$data.refdatastore.length > 0) {
                    for (var i = 0; i < this.$data.refdatastore.length; i++) {
                        if (!req.filter(function (s) {
                            return this.$data.refdatastore[i].attr == s.name
                        }).length) {
                            length = 1;
                            req.push({ 'attr': this.$data.refdatastore[i].attr, 'val': this.$data.refdatastore[i].value });
                        }
                    }
                }
                var info = {
                    eventid: eventid,
                    edtype: "0",
                    projectid: '',
                    rclsid: '',
                    robjid: '',
                    userlogin: '',
                    clsid: this.$data.param.Master_Cls.ID,
                    objid: "",
                    attr: req,
                }
                var dataInfo = {
                    edtype: info.edtype, eventid: info.eventid, projectid: info.projectid,rclsid: info.rclsid,
                    robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid,
                    attr: JSON.stringify(info.attr), extinfo: JSON.stringify(enviroment), global_attr: JSON.stringify(this.$data.global_attr)
                }
                console.log(dataInfo);
                this.$store.dispatch('DataObjRunCustomEventInfo',dataInfo).then(success=>{
                    console.log(success);
                    if (success.code=='00000') {
                        var data = JSON.parse(success.data);
                        var result = data.result;
                        for (var i = 0; i < result.length; i++) {
                            // self.class_attr_ele.find('.attr_field[data-field="' + result[i].attr + '"]').val(result[i].value).data('val', result[i].value);
                            var length = 0;
                            if (!this.$data.refdatastore.filter(function (s) {
                                return result[i].attr == s.attr
                            }).length) {
                                length = 1;
                                this.$data.refdatastore.push(result[i]);
                            }
                            if (length == 0) {
                                for (var j = 0; j < this.$data.refdatastore.length; j++) {
                                    if (this.$data.refdatastore[j].attr == result[i].attr) {
                                        this.$data.refdatastore[j].value = result[i].value;
                                    }
                                }
                            }
                        }
                        this.add();
                    }else{
                        uni.showModal({title:"错误4",content:success.msg,showCancel:false,confirmText:"取消"});
                    }
                }).catch(ex=>{
                    // console.log(ex);
                    uni.showModal({title:"错误4.1",content:ex.errMsg,showCancel:false,confirmText:"取消"});
                });
            },
            DataObjRunCustomEvent_Return(eventid,data_attr,button_callback,index,iindex){
                var enviroment = {
                    'function': '3000', // 功能点编号
                    cls_id: this.$data.param.Master_Cls.ID,     // 功能点主数据类标识
                    'button': 'top',   // top/bottom
                    button_name: '新增',
                    master: {
                        cls_id: this.$data.param.Master_Cls.ID, // button=bottom时 master的cls_id
                        //obj_id: ''  // button=bottom时 master的obj_id
                    }
                };
                var req=[];
                var attrlist = this.$data.classAttrList;
                for (var i = 0; i < attrlist.length; i++) {
                    var attr = attrlist[i].Attr;
                    for (var j = 0; j < attr.length; j++) {
                        var ar = attr[j];
                        if(ar.Type=='引用对象(多个)')
                            if(ar.Value=='请') ar.Value='';
                        if(ar.Type=='引用人员' || ar.Type=='引用项目')
                            req.push({ attr: ar.Name, val: ar.ValID ?ar.ValID :'' });
                        else if(ar.Type=='布尔值')
                            req.push({ attr: ar.Name, val: ar.Value?'1':'0'});
                        else
                            req.push({ attr: ar.Name, val: ar.Value });
                    }
                }
                if (this.$data.refdatastore.length > 0) {
                    for (var i = 0; i < this.$data.refdatastore.length; i++) {
                        if (!req.filter(function (s) {
                            return this.$data.refdatastore[i].attr == s.name
                        }).length) {
                            length = 1;
                            req.push({ 'attr': this.$data.refdatastore[i].attr, 'val': this.$data.refdatastore[i].value });
                        }
                    }
                }
                var extinfo = enviroment;
                extinfo.edit_dlg = {
                    type: 'small',//小窗口
                    class_id: this.$data.param.Master_Cls.ID,//当前数据类id
                }
                if (data_attr) {
                    extinfo.edit_dlg.form_control = {//所属的表单控件
                        name: data_attr.Name,//字段属性
                        text: data_attr.DispName,//显示文本
                        group_name: data_attr.GroupName,//属性组
                        type: data_attr.Type,//字段类型
                        readonly: data_attr.ReadOnly,//是否只读
                        button_img: data_attr.button_img,//引用按钮的图标
                        button_tooltip: data_attr.button_tooltip//引用按钮的tooltip
                    }
                }
                var dataInfo = {
                    edtype:  "0", eventid: eventid, projectid: '',rclsid: '', robjid: '', userlogin: '',
                    clsid: this.$data.param.Master_Cls.ID, objid: '',attr: JSON.stringify(req),
                    extinfo: JSON.stringify(extinfo), global_attr: JSON.stringify(this.$data.global_attr)
                }
                console.log(dataInfo);
                this.$store.dispatch('DataObjRunCustomEventInfo',dataInfo).then(success=>{
                    console.log(success);
                    if (success.code=='00000') {
                        var data = JSON.parse(success.data);
                        if (data != "") {
                        var actions = data.action;
                        console.log(actions);
                        if (actions) {
                            for (var i = 0; i < actions.length; i++) {
                                var action = actions[i];
                                var val = action.value;
                                var enviroment = JSON.stringify(enviroment);
                                if (action.action_type == 'open_panel') {
                                   var d = dialog({
                                       title: '<i class="ace-icon fa fa-info-circle"></i> ' + '提示',
                                       content: action.action_type + '此action尚未处理!'
                                   });
                                   d.show();
                                }
                                else if (action.action_type == 'open_select_userdlg') {
                                    var style = val.style;
                                    // style == 'user' ? '选择人员' : style == 'department' ? '选择部门' : style == 'role' ? '选择角色' : ''
                                    var $this = this;
                                    var param={
                                        index: index,
                                        iindex:iindex,
                                        button_callback:button_callback,
                                        req:req,
                                        data_attr:data_attr
                                    }
                                    uni.navigateTo({
                                        url:'../selpsn/index?mulit=false&param='+JSON.stringify(param),
                                        events:{
                                            AddPer(data,param){
                                                // console.log(param);
                                                console.log(data);
                                                var callback_eventid = param.button_callback.trim();
                                                var info = {
                                                    eventid: callback_eventid,
                                                    edtype: "0",
                                                    projectid: '',
                                                    rclsid: '',
                                                    robjid: '',
                                                    userlogin: '',
                                                    clsid: $this.$data.param.Master_Cls.ID,
                                                    objid: "",
                                                    attr: param.req,
                                                    inputparameter: data
                                                }
                                                $this.DataObjRunCustomEvent(info, param.data_attr);
                                            }
                                        }
                                    });
                                }
                                else if (action.action_type == 'open_data_query_dlg') {
                                }
                                else if (action.action_type == 'open_common_dlg') {
                                    var value = action.value;
                                    var d = dialog({
                                        title: '<i class="ace-icon fa fa-info-circle"></i> ' + '提示',
                                        content: action.action_type + '此action尚未处理!'
                                    });
                                    d.show();
                                }
                                else if (action.action_type == 'open_project_query_dlg') {
                                    //console.log(action.value.select_range);
                                    //console.log(action.value.mulit_select);
                                    var priRel = '-1';
                                    if (action.value.select_range == '全部相关')
                                        priRel = '0';
                                    else if (action.value.select_range == '我负责的项目')
                                        priRel = '1';
                                    else if (action.value.select_range == '我创建的')
                                        priRel = '2';
                                    else if (action.value.select_range == '我参与的' || action.value.select_range == '我参加的')
                                        priRel = '3';
                                    else if (action.value.select_range == '我关注的')
                                        priRel = '4';
                                    else if (action.value.select_range == '我下属的项目')
                                        priRel = '5';
                                    var $this = this;
                                    var param_={
                                        index: index,
                                        iindex:iindex,
                                        button_callback:button_callback,
                                        req:req
                                    }
                                    uni.navigateTo({
                                        url:'../selPrj/index?relation='+priRel+'&param='+JSON.stringify(param_),
                                        events:{
                                            AddPer(data,param){
                                                $this.$data.classAttrList[param.index].Attr[param.iindex].Value=data[0].Name;
                                                $this.$data.classAttrList[param.index].Attr[param.iindex].ValID=data[0].ID+';'+data[0].Name;
                                                var callback_eventid = param.button_callback.trim();
                                                if (callback_eventid) {
                                                    var info = {
                                                        eventid: callback_eventid,
                                                        edtype: "2",
                                                        projectid: data[0].ID,
                                                        rclsid: "",
                                                        robjid: "",
                                                        userlogin: "",
                                                        clsid: $this.$data.param.Master_Cls.ID,
                                                        objid: "",
                                                        attr: param.req,
                                                    }
                                                    $this.DataObjRunCustomEvent(info);
                                                }
                                            }
                                        }
                                    });
                                } else {
                                    var d = dialog({
                                        title: '<i class="ace-icon fa fa-info-circle"></i> ' + '提示',
                                        content: action.action_type + '此action尚未处理!'
                                    });
                                    d.show();
                                }
                            }
                        }
                        }else{
                            uni.showModal({title:"提示5.2",content: '调用 before_click_button 脚本返回空,event_id' + eventid,showCancel:false,confirmText:"取消"});
                        }
                    }else{
                        uni.showModal({title:"错误5",content:success.msg,showCancel:false,confirmText:"取消"});
                    }
                }).catch(ex=>{
                    // console.log(ex);
                    uni.showModal({title:"提示5.1",content:ex.errMsg,showCancel:false,confirmText:"取消"});
                });
            },
            scan_ini_DataObjRunCustomEvent(info){
                var param = {
                    EditStyle: this.$data.param.Sub_Cls.View_Style.Name,
                    ViewStyle: this.$data.param.Sub_Cls.View_Style.Name,
                    NotTriggerSysEvent: 0,
                    enviroment: {
                        'function': '3000', // 功能点编号
                        cls_id: this.$data.param.Sub_Cls.ID,     // 功能点主数据类标识
                        'button': 'top',   // top/bottom
                        button_name: '新增',
                        master: {
                            cls_id: this.$data.param.Sub_Cls.ID, // button=bottom时 master的cls_id
                            //obj_id: ''  // button=bottom时 master的obj_id
                        }
                    }
                }
                var inputparameter = '';
                var global_attr = '';
                var dataInfo = {
                    edtype: info.edtype, eventid: info.eventid, projectid: info.projectid,
                    rclsid: info.rclsid, robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid,
                    attr: JSON.stringify(info.attr), extinfo: JSON.stringify(param), inputparameter: inputparameter, global_attr: global_attr
                }
                console.log(dataInfo);
                this.$store.dispatch('DataObjRunCustomEventInfo',dataInfo).then(success=>{
                    console.log(success);
                    if (success.code=='00000') {
                        var data = JSON.parse(success.data);
                        var actionlist = data.action;
                        if (actionlist) {
                            for (var j = 0; j < actionlist.length; j++) {
                                var action = actionlist[j]
                                var action_type = action.action_type;
                                var value = action.value;
                                if (action_type == 'set_dlg_attr') {
                                    if (value) {
                                        var val = value;
                                        if (typeof value == 'string') {
                                            val = JSON.parse(value);
                                        }
                                        console.log(val);
                                        for (var i = 0; i < val.length; i++) {
                                            for (var a = 0; a < this.$data.subClassAttrList.length; a++) {
                                                for (var l = 0; l < this.$data.subClassAttrList[a].Attr.length; l++) {
                                                    var ca = this.$data.subClassAttrList[a].Attr[l];
                                                    if (val[i].attr  == ca.Name) {
                                                        if(ca.Type=='字典' || ca.Type=='字典-字符串'){
                                                            var dictItemList=[];
                                                            for(var d in val[i].choice_list){
                                                                var val =val[i].choice_list[d];
                                                                dictItemList.push({"CN_S_NAME":val,"Name":val,"label":val,"value":val});
                                                            }
                                                            ca.dictitem = dictItemList;
                                                            // attr[j].dictitem = val[i].choice_list;
                                                        }else{
                                                            // ca.value = val[i].value;
                                                        }
                                                    }
                                                }
                                            }
                                            var length = 0;
                                            if (!this.$data.refdatastore.filter(function (s) {
                                                return val[i].attr == s.attr
                                            }).length) {
                                                length = 1;
                                                this.$data.refdatastore.push(val[i]);
                                            }
                                            if (length == 0) {
                                                for (var j = 0; j < this.$data.refdatastore.length; j++) {
                                                    if (this.$data.refdatastore[j].attr == val[i].attr) {
                                                        this.$data.refdatastore[j].value = val[i].value;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                if (action_type == 'open_select_userdlg') {
                                    uni.showModal({title:"错误2.2",content:"open_select_userdlg这个action_type还未处理!",showCancel:false,confirmText:"取消"});
                                }
                            }
                        }
                    }else{
                        uni.showModal({title:"错误2",content:success.msg,showCancel:false,confirmText:"取消"});
                    }
                }).catch(ex=>{
                    // console.log(ex);
                    uni.showModal({title:"错误2.1",content:ex.errMsg,showCancel:false,confirmText:"取消"});
                });
            },
            scan_DataObjRunCustomEvent(info,data_attr){
                var $this = this;
                var enviroment = {
                    'function': '3000', // 功能点编号
                    cls_id: this.$data.param.Sub_Cls.ID,     // 功能点从数据类标识
                    'button': 'top',   // top/bottom
                    button_name: '新增',
                    master: {
                        cls_id: this.$data.param.Sub_Cls.ID, // button=bottom时 master的cls_id
                        //obj_id: ''  // button=bottom时 master的obj_id
                    }
                };
                enviroment.edit_dlg = {
                    type: 'small',//小窗口
                    class_id: this.$data.param.Sub_Cls.ID,//当前数据类id
                }
                if (data_attr) {
                    enviroment.edit_dlg.form_control = {//所属的表单控件
                        name: data_attr.Name,//字段属性
                        text: data_attr.DispName,//显示文本
                        group_name: data_attr.GroupName,//属性组
                        type: data_attr.Type,//字段类型
                        readonly: data_attr.ReadOnly,//是否只读
                        button_img: data_attr.button_img,//引用按钮的图标
                        button_tooltip: data_attr.button_tooltip//引用按钮的tooltip
                    }
                }
                var dataInfo = {
                    edtype: info.edtype, eventid: info.eventid, projectid: info.projectid.replace('{','').replace('}',''),
                    rclsid: info.rclsid, robjid: info.robjid, userlogin: info.userlogin, clsid: info.clsid, objid: info.objid,
                    attr: JSON.stringify(info.attr), extinfo: JSON.stringify(enviroment), inputparameter: JSON.stringify(info.inputParamter), global_attr: JSON.stringify(this.$data.global_attr)
                }
                console.log(dataInfo);
                this.$store.dispatch('DataObjRunCustomEventInfo',dataInfo).then(success=>{
                    console.log(success);
                    if (success.code=='00000') {
                        var data = JSON.parse(success.data);
                        var actionlist = data.action;
                        if (actionlist) {
                            console.log(actionlist);
                            for (var i = 0; i < actionlist.length; i++) {
                                var action = actionlist[i];
                                if (action.action_type == 'set_dlg_attr') {
                                    var result = action.value;
                                    for (var i = 0; i < result.length; i++) {
                                        if (result[i].choice_list) {
                                            for (var s = 0; s < $this.$data.subPanelList.length; s++) {
                                                for (var c = 0; c < $this.$data.subPanelList[s].subClassAttrList.length; c++) {
                                                    var attr = $this.$data.subPanelList[s].subClassAttrList[c].Attr;
                                                    for (var j = 0; j < attr.length; j++) {
                                                        if(attr[j].Name==result[i].attr){
                                                            if(attr[j].Type=='字典' || attr[j].Type=='字典-字符串'){
                                                                var dictItemList=[];
                                                                for(var d in result[i].choice_list){
                                                                    var val =result[i].choice_list[d];
                                                                    dictItemList.push({"CN_S_NAME":val,"Name":val,"label":val,"value":val});
                                                                }
                                                                attr[j].dictitem = dictItemList;
                                                                // attr[j].dictitem = result[i].choice_list;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        for (var s = 0; s < $this.$data.subPanelList.length; s++) {
                                            for (var c = 0; c < $this.$data.subPanelList[s].subClassAttrList.length; c++) {
                                                var attr = $this.$data.subPanelList[s].subClassAttrList[c].Attr;
                                                for (var j = 0; j < attr.length; j++) {
                                                    console.log(attr[j].Name+'=='+result[i].attr);
                                                    if(attr[j].Name==result[i].attr){
                                                        attr[j].Value = result[i].value;
                                                    }
                                                }
                                            }
                                        }
                                        var length = 0;
                                        if (!$this.$data.refdatastore.filter(function (s) {
                                            return result[i].attr == s.attr
                                        }).length) {
                                            length = 1;
                                            $this.$data.refdatastore.push(result[i]);
                                        }
                                        if (length == 0) {
                                            for (var j = 0; j < $this.$data.refdatastore.length; j++) {
                                                if ($this.$data.refdatastore[j].attr == result[i].attr) {
                                                    $this.$data.refdatastore[j].value = result[i].value;
                                                }
                                            }
                                        }
                                    }
                                } else if (data.action[i].action_type == 'set_global_attr') {
                                    $this.$data.global_attr = data.action[i].value || [];
                                } else if (data.action[i].action_type == 'add_subcls_panel') {
                                    var result = action.value;
                                    for (var i = 0; i < result.length; i++) {
                                        for (var s = 0; s < $this.$data.subPanelList.length; s++) {
                                            for (var c = 0; c < $this.$data.subPanelList[s].subClassAttrList.length; c++) {
                                                var attr = $this.$data.subPanelList[s].subClassAttrList[c].Attr;
                                                for (var j = 0; j < attr.length; j++) {
                                                    console.log(attr[j].Name+'=='+result[i].attr);
                                                    if(attr[j].Name==result[i].attr){
                                                        attr[j].Value = result[i].value;
                                                    }
                                                }
                                            }
                                        }
                                        var length = 0;
                                        if (!$this.$data.refdatastore.filter(function (s) {
                                            return result[i].attr == s.attr
                                        }).length) {
                                            length = 1;
                                            $this.$data.refdatastore.push(result[i]);
                                        }
                                        if (length == 0) {
                                            for (var j = 0; j < $this.$data.refdatastore.length; j++) {
                                                if ($this.$data.refdatastore[j].attr == result[i].attr) {
                                                    $this.$data.refdatastore[j].value = result[i].value;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        if (data.result) {
                            var result = data.result;
                            for (var i = 0; i < result.length; i++) {
                                for (var s = 0; s < $this.$data.subPanelList.length; s++) {
                                    for (var c = 0; c < $this.$data.subPanelList[s].subClassAttrList.length; c++) {
                                        var attr = $this.$data.subPanelList[s].subClassAttrList[c].Attr;
                                        for (var j = 0; j < attr.length; j++) {
                                            console.log(attr[j].Name+'=='+result[i].attr);
                                            if(attr[j].Name==result[i].attr){
                                                attr[j].Value = result[i].value;
                                            }
                                        }
                                    }
                                }
                                var length = 0;
                                if (!$this.$data.refdatastore.filter(function (s) {
                                    return result[i].attr == s.attr
                                }).length) {
                                    length = 1;
                                    $this.$data.refdatastore.push(result[i]);
                                }
                                if (length == 0) {
                                    for (var j = 0; j < $this.$data.refdatastore.length; j++) {
                                        if ($this.$data.refdatastore[j].attr == result[i].attr) {
                                            $this.$data.refdatastore[j].value = result[i].value;
                                        }
                                    }
                                }
                            }
                        }
                    }else{
                        uni.showModal({title:"错误3",content:success.msg,showCancel:false,confirmText:"取消"});
                    }
                }).catch(ex=>{
                    // console.log(ex);
                    uni.showModal({title:"错误3.1",content:ex.errMsg,showCancel:false,confirmText:"取消"});
                });
            },
        }
    }
</script>
uni_modules/select-cy/changelog.md
New file
@@ -0,0 +1,15 @@
## 1.0.5(2022-08-15)
应评论区需要,增加分页功能支持
## 1.0.4(2022-08-15)
修改样式问题,解决评论区说的问题
## 1.0.3(2022-07-01)
增加点击非元素关闭下拉,需要在使用组件的页面配合,监听最外层点击事件,调用组件关闭方法,注意外层宽高保持是整页宽高,具体参考示例
## 1.0.2(2022-07-01)
修复删除索引的bug
## 1.0.1(2022-07-01)
## 1.0.0(2022-07-01)
第一版  实现下拉多选可删除单个
基于 [感谢](https://ext.dcloud.net.cn/plugin?id=5070)
改造而来
只支持多选,其他啥也没,样式可以自己调整
uni_modules/select-cy/components/select-cy/select-cy.vue
New file
@@ -0,0 +1,400 @@
<template>
    <view class="uni-select-cy" :style="{'z-index':zindex}">
        <view class="uni-select-cy-select" :class="{ active: active }" @click.stop="handleSelect">
            <!-- 禁用mask -->
            <view class="uni-disabled" v-if="disabled"></view>
            <!-- 清空 -->
            <view class="close-icon close-postion" v-if="realValue.length && !active && !disabled && showClearIcon">
                <text @click.stop="handleRemove(null)"></text>
            </view>
            <!-- 显示框 -->
            <view class="uni-select-multiple" v-show="realValue.length">
                <view class="uni-select-multiple-item" v-for="(item, index) in realValue" :key="index">
                    <view class="uni-select-multiple-item-row">
                        {{ item }}
                    </view>
                    <view class="close-icon" v-if="showValueClear"><text @click.stop="handleRemove(index)"></text>
                    </view>
                </view>
            </view>
            <!-- 为空时的显示文案 -->
            <view v-if="realValue.length == 0&&showplaceholder">{{ placeholder }}</view>
            <!-- 禁用图标 -->
            <view class="uni-select-cy-icon" :class="{ disabled: disabled }"><text></text></view>
        </view>
        <!-- 下拉选项 -->
        <scroll-view class="uni-select-cy-options" :scroll-y="true" v-show="active" @scrolltolower="scrolltolower">
            <template>
                <view class="uni-select-cy-item" :class="{ active: realValue.includes(item[svalue]) }"
                    v-for="(item, index) in options" :key="index" @click.stop="handleChange(index, item)">
                    {{ item[slabel] }}
                </view>
            </template>
        </scroll-view>
    </view>
</template>
<script>
    export default {
        name: 'select-cy',
        props: {
            //是否显示全部清空按钮
            showClearIcon: {
                type: Boolean,
                default: false
            },
            //是否显示单个删除
            showValueClear: {
                type: Boolean,
                default: true
            },
            zindex: {
                type: Number,
                default: 999
            },
            //禁用组件
            disabled: {
                type: Boolean,
                default: false
            },
            options: {
                type: Array,
                default () {
                    return [];
                }
            },
            value: {
                type: Array,
                default () {
                    return [];
                }
            },
            placeholder: {
                type: String,
                default: '请选择'
            },
            showplaceholder: {
                type: Boolean,
                default: true
            },
            slabel: {
                type: String,
                default: 'label'
            },
            svalue: {
                type: String,
                default: 'value'
            },
            // 是否开启分页
            isPaging:{
                type: Boolean,
                default: false
            }
        },
        data() {
            return {
                active: false, //组件是否激活,
                changevalue: [], //搜索框同步
                realValue: []
            };
        },
        watch:{
            value:{
                deep:true,
                handle(val){
                    //初始化
                    this.init();
                }
            }
        },
        methods: {
            close() {
                this.active = false
            },
            init() {
                if (this.value.length > 0) {
                    this.changevalue = this.options.map(item => {
                        this.value.forEach(i => {
                            if (item[this.svalue] == i[this.svalue]) {
                                return item;
                            }
                        });
                    });
                    this.realValue = this.value;
                } else {
                    this.changevalue = [];
                    this.realValue = [];
                }
            },
            scrolltolower(){
                if(this.isPaging){
                    this.$emit('scrolltolower')
                }
            },
            //点击展示选项
            handleSelect() {
                if (this.disabled) return;
                this.active = !this.active;
            },
            //移除数据
            handleRemove(index) {
                var delvalue=[];
                for(var i in this.changevalue){
                    delvalue.push({Name:this.changevalue[i].Name});
                }
                if (index === null) {
                    this.realValue = [];
                    this.changevalue = [];
                } else {
                    this.realValue.splice(index, 1);
                    this.changevalue.splice(index, 1);
                }
                this.$emit('change', this.changevalue, this.realValue, delvalue);
            },
            //点击组件列
            handleChange(index, item) {
                let arrIndex = this.realValue.indexOf(item[this.svalue]);
                if (arrIndex > -1) {
                    this.changevalue.splice(arrIndex, 1);
                    this.realValue.splice(arrIndex, 1);
                } else {
                    this.changevalue.push(item);
                    this.realValue.push(item[this.svalue]);
                }
                console.log(this.realValue, 'this.realValue')
                this.$emit('change', this.changevalue, this.realValue);
            }
        }
    };
</script>
<style lang="scss" scoped>
    .uni-select-cy {
        position: relative;
        z-index: 999;
        .uni-select-mask {
            width: 100%;
            height: 100%;
        }
        /* 删除按钮样式*/
        .close-icon {
            height: 100%;
            width: 15px;
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 3;
            cursor: pointer;
            text {
                position: relative;
                background: #fff;
                width: 13px;
                height: 13px;
                border-radius: 50%;
                border: 1px solid #bbb;
                &::before,
                &::after {
                    content: "";
                    position: absolute;
                    left: 20%;
                    top: 50%;
                    height: 1px;
                    width: 60%;
                    transform: rotate(45deg);
                    background-color: #bbb;
                }
                &::after {
                    transform: rotate(-45deg);
                }
            }
        }
        //所有清空的定位
        .close-postion {
            position: absolute;
            right: 35px;
            top: 0;
            height: 100%;
            width: 15px;
        }
        /* 多选盒子 */
        .uni-select-multiple {
            overflow-x: auto;
            display: flex;
            flex: 1;
            width: 0;
            flex-wrap: nowrap;
            .uni-select-multiple-item {
                background: #bbb;
                margin-right: 5rpx;
                padding: 2rpx 4rpx;
                border-radius: 4rpx;
                color: #fff;
                display: flex;
                flex: 0 0 140rpx;
                .uni-select-multiple-item-row{
                    flex: 1;
                    overflow: hidden;
                    text-overflow: ellipsis;
                    white-space: nowrap;
                }
            }
        }
        // select部分
        .uni-select-cy-select {
            user-select: none;
            position: relative;
            z-index: 3;
            height: 36px;
            padding: 0 30px 0 10px;
            box-sizing: border-box;
            border-radius: 4px;
            border: 1px solid rgb(229, 229, 229);
            display: flex;
            align-items: center;
            font-size: 14px;
            color: #999;
            flex-wrap: nowrap;
            .uni-disabled {
                position: absolute;
                left: 0;
                width: 100%;
                height: 100%;
                z-index: 19;
                cursor: no-drop;
                background: rgba(255, 255, 255, .5);
            }
            .uni-select-cy-input {
                font-size: 14px;
                color: #999;
                display: block;
                width: 96%;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
                line-height: 30px;
                box-sizing: border-box;
                &.active {
                    color: #333;
                }
            }
            .uni-select-cy-icon {
                cursor: pointer;
                position: absolute;
                right: 0;
                top: 0;
                height: 100%;
                width: 30px;
                display: flex;
                align-items: center;
                justify-content: center;
                &::before {
                    content: "";
                    width: 1px;
                    height: 100%;
                    position: absolute;
                    left: 0;
                    top: 0;
                    background-color: #e5e5e5;
                }
                text {
                    display: block;
                    width: 0;
                    height: 0;
                    border-width: 12rpx 12rpx 0;
                    border-style: solid;
                    border-color: #bbb transparent transparent;
                    transition: .3s;
                }
                &.disabled {
                    cursor: no-drop;
                    text {
                        width: 20rpx;
                        height: 20rpx;
                        border: 2px solid #ff0000;
                        border-radius: 50%;
                        transition: .3s;
                        position: relative;
                        z-index: 999;
                        &::after {
                            content: "";
                            position: absolute;
                            top: 50%;
                            left: 0;
                            width: 100%;
                            height: 2px;
                            margin-top: -1px;
                            background-color: #ff0000;
                            transform: rotate(45deg);
                        }
                    }
                }
            }
            &.active .uni-select-cy-icon {
                text {
                    transform: rotate(180deg);
                }
            }
        }
        // options部分
        .uni-select-cy-options {
            user-select: none;
            position: absolute;
            top: calc(100% + 5px);
            left: 0;
            width: 100%;
            height: 500rpx;
            border-radius: 4px;
            border: 1px solid rgb(229, 229, 229);
            background: #fff;
            padding: 5px 0;
            box-sizing: border-box;
            z-index: 9;
            .uni-select-cy-item {
                padding: 0 10px;
                box-sizing: border-box;
                cursor: pointer;
                line-height: 2.5;
                transition: .3s;
                font-size: 14px;
                &.active {
                    color: #409eff;
                    background-color: #f5f7fa &:hover {
                        color: #409eff;
                        background-color: #f5f7fa
                    }
                }
                &:hover {
                    background-color: #f5f5f5;
                }
            }
        }
    }
</style>
uni_modules/select-cy/package.json
New file
@@ -0,0 +1,78 @@
{
    "id": "select-cy",
    "dcloudext": {
        "sale": {
            "regular": {
                "price": "0.00"
            },
            "sourcecode": {
                "price": "0.00"
            }
        },
        "contact": {
            "qq": ""
        },
        "declaration": {
            "ads": "无",
            "data": "插件不采集任何数据",
            "permissions": "无"
        },
        "npmurl": "",
        "type": "component-vue"
    },
    "displayName": "select-cy",
    "version": "1.0.5",
    "description": "简单的下拉多选插件",
    "keywords": [
        "select",
        "下拉",
        "选择",
        "多选"
    ],
    "repository": "",
    "engines": {
        "HBuilderX": "^3.0.7"
    },
    "uni_modules": {
        "platforms": {
            "cloud": {
                "tcb": "y",
                "aliyun": "y"
            },
            "client": {
                "Vue": {
                    "vue2": "y",
                    "vue3": "u"
                },
                "App": {
                    "app-vue": "y",
                    "app-nvue": "n"
                },
                "H5-mobile": {
                    "Safari": "u",
                    "Android Browser": "u",
                    "微信浏览器(Android)": "y",
                    "QQ浏览器(Android)": "u"
                },
                "H5-pc": {
                    "Chrome": "y",
                    "IE": "u",
                    "Edge": "u",
                    "Firefox": "u",
                    "Safari": "u"
                },
                "小程序": {
                    "微信": "y",
                    "阿里": "u",
                    "百度": "u",
                    "字节跳动": "u",
                    "QQ": "u"
                },
                "快应用": {
                    "华为": "u",
                    "联盟": "u"
                }
            }
        }
    }
}
uni_modules/select-cy/readme.md
New file
@@ -0,0 +1,125 @@
## 插件使用方法:
 `<select-lay :value="tval" name="name" :options="datalist" @selectitem="selectitem"></select-lay>`
## 配置参数:
 属性名|类型|默认值|说明
 :--:|:--:|:--:|-
 showClearIcon|Boolean|false|是否显示全部清空按钮
 showValueClear|Boolean|true|是否显示单个删除
 zindex|Number|""|层级,默认999,防止多个组件一起使用时下拉栏穿透
 slabel|String|label|自定义列表中键值对关系,参考示例
 svalue|String|value|自定义列表中键值对关系,该值对应value,参考示例
 placeholder|String|请选择|无选项时展示的文字
 showplaceholder|Boolean|true|下拉时是否展示请选择按钮
 options|Array|无|数据列表
 disabled|Boolean|false|是否禁用
 value|Array|无|选中值及回显
 isPaging|Boolean|false|是否开启分页默认不需要
## 事件:
 事件名|说明|返回值
 :--:|:--:|-
 @change|点击项目或者删除触发的事件|返回全量选中项及只有value的选中项
 @scrolltolower|分页触底事件|发送你的请求获取分页数据
## 说明:
 此插件依赖scss,请务必安装!!!
## 示例:
 ```
    <template>
        <view class="content">
            <form @submit="formSubmit">
                <view class="item">写法:</view>
                <select-cy :value="tval" placeholder="请选择项目" :options="datalist" @change="change"></select-cy>
                <select-cy :value="tval" placeholder="请选择项目1" :options="datalist" @change="change"></select-cy>
                <button type="submit" @click="formSubmit">提交</button>
            </form>
        </view>
    </template>
    <script>
    export default {
        data() {
            return {
                //模拟数据列表
                datalist: [],
                //模拟初始数据
                tval: []
            };
        },
        onReady() {
            this.datalist = [
                {
                    label: 'label1',
                    value: 'value1'
                },
                {
                    label: 'label2',
                    value: 'value2'
                },
                {
                    label: 'label3',
                    value: 'value3'
                },
                {
                    label: 'label4',
                    value: 'value4'
                },
                {
                    label: 'label5',
                    value: 'value5'
                },
                {
                    label: 'label6',
                    value: 'value6'
                },
                {
                    label: 'label7',
                    value: 'value7'
                },
                {
                    label: 'label8',
                    value: 'value8'
                },
                {
                    label: 'label9',
                    value: 'value9'
                }
            ];
        },
        methods: {
            formSubmit(e) {
                console.log(this.tval,'提交参数');
            },
            change(item,value) {
                console.log(item,value);
                this.tval = value;
            }
        }
    };
    </script>
    <style lang="scss">
    .content {
        width: 300px;
        padding: 20px 0;
        margin: 0 auto;
        .item {
            margin-bottom: 10px;
        }
        .btn {
            margin-top: 20px;
        }
    }
    </style>
 ```