SMA用到的东西

2019-12-06  本文已影响0人  谜逝逝

如果每次都要传一样的参数就把它存在

api-manager.js 里的 ↓ 这个位置

function ajax(param, url, method, callBack, loading_flag, loading_title, loading_text) {
    if (connectionType() == 'none') {
        showToast('网络请求超时,请稍后重试')
        return;
    }
    if (loading_flag) {
        waitingForProgress('', loading_title, loading_text)
    }
    if (!isHasUserInfo()) {
        console.log('Ajax has not user info')
    } else {
        console.log('Ajax has user info')
        if (!isObjectOwnProperty(getStorageUser(), 'id')) {
            var user = getStorageUser();
            // var language ='en'
            consoledebug.log('getStorageUser ----> : ' + JSON.stringify(user))
            param.staff_id = user.id
            param.token = user.patient_login.token
            consoledebug.log('这个token是--------------->>>' + JSON.stringify(user.patient_login.token))

        }
    }

下拉框

下拉框CSS样式

<div class="border-color aui-margin-r-20 aui-margin-l-20">
                <div onclick="sexTypeList()">
                    <img id="sex_xiala" src="../../image/down.png" width="7" height="5"
                         class="aui-pull-right aui-margin-t-10">
                    <div id="sex_answer" style="color: #B2B5BA; border-bottom: 1px solid #EEEEEE">请选出患者性别</div>
                </div>
                <div id="sex_list" class="aui-hide">
                    <div onclick="sexType(this)" style="border-bottom: 1px solid #EEEEEE">男</div>
                    <div onclick="sexType(this)" style="border-bottom: 1px solid #EEEEEE">女</div>
                </div>
            </div>

下拉框JS

    //选择出生方式
    function getTypeList() {
        if ($("#xiala").attr("src") == '../../image/down.png') 向下箭头的图片 {
            $("#radio_list").removeClass('aui-hide')
            $("#xiala").attr('src', '../../image/up.png')向上箭头的图片
            $("#radio_list").slideDown()
        } else {
            $("#xiala").attr('src', '../../image/down.png')
            $("#radio_list").slideUp()
        }

    }
    //fault_category_id 选择的故障类型id
    function chooseType(el) {
        consoledebug.log(el)
        $("#choose_answer").text($(el).text())
        $("#choose_answer").css('color','black')
        $("#xiala").attr('src', '../../image/down.png')
        $("#radio_list").slideUp()
    }

JQ时间控件

首先得引用样式以及js包 不然没有效果 出现时间控件乱版或者不好用的情况一定是没引CCS样式及JS 或者input的ID没有绑对

css JS
 <link rel="stylesheet" type="text/css" href="../../style/mobiscroll.custom.min.css"/>
css样式
  <input id="birthday"  type="text" placeholder="请输入患者出生日期">
时间控件JS
<script type="text/javascript" src="../../script/common/mobiscroll.custom.min.js"></script>
 var theme = "ios";// 手机样式
    var mode = "scroller";//模型
    var display = "bottom";//在底部
    var lang = "zh";//中文
   ----------------------------------------------------------
    apiready = function () {
        //时间控件ios手机必须加上此代码才好使
        if (systemType() == 'ios') {
            init()
            mobiscroll.settings = {
                theme: theme
            };
        }
        init()
    }
  //打开时间选择器
    $('#birthday').mobiscroll().date({
        theme: theme,
        mode: mode,
        display: display,//显示位置
        lang: lang,
        dateFormat: "yyyy-mm-dd",//时间格式
        minDate: new Date(1900, 3, 10),
        maxDate: new Date(2030, 7, 30),
        stepMinute: 1
    });

籍贯、所在地、民族 等一级/二级/三级联动组件apicloud模块

css样式

   <div class="font-size-color aui-margin-t-10 aui-margin-l-20">籍贯</div>
        <div class="border-color aui-margin-r-20 aui-margin-l-20">
            <input id="birthplace" type="text" placeholder="请输入籍 readonly="readonly" onclick="selAddress()" value="">
        </div>

模块JS

//选择籍贯
    function selAddress() {
        var UIActionSelector = api.require('UIActionSelector');
        UIActionSelector.open({
            datas: 'widget://res/position1.json',
            layout: {
                row: 5,
                col: 2, //代表几级联动
                height: 30,
                size: 12,
                sizeActive: 14,
                rowSpacing: 0,
                colSpacing: 0,
                maskBg: 'rgba(0,0,0,0.2)',
                bg: '#fff',
                color: '#888',
                colorActive: '#444444',
                colorSelected: '#444444'
            },
            animation: true,
            cancel: {
                text: '取消',
                size: 12,
                w: 90,
                h: 35,
                bg: '#fff',
                bgActive: '#ccc',
                color: '#888',
                colorActive: '#fff'
            },
            ok: {
                text: '确定',
                size: 12,
                w: 90,
                h: 35,
                bg: '#fff',
                bgActive: '#ccc',
                color: '#888',
                colorActive: '#fff'
            },
            title: {
                text: '请选择',
                size: 12,
                h: 44,
                bg: '#eee',
                color: '#888'
            },
            fixedOn: api.frameName
        }, function (ret, err) {
            consoledebug.log("ret:" + JSON.stringify(ret));
            if (ret && ret.eventType == "ok") {
                birthplace = ret.selectedInfo[0].name +"/"+ret.selectedInfo[1].name;省市名字
                native_place_city_id= [ret.selectedInfo[0].id,ret.selectedInfo[1].id ];省市ID
                $("#birthplace").val(birthplace)
            } else {
            }
        });
    }

监听实时输入框的值

 $('监听标签的id').bind('input propertychange', function(){
            search_word=$('#search_text').val()
            consoledebug.log('输入框的值是------->>'+JSON.stringify(search_word))
        })

多模版处理方法(拿收藏接口写法举例)

function getcollectionPatient_getListByCon(ret, err) {
        consoledebug.log('收藏接口返回的是-------------->>' + JSON.stringify(ret))
        if (ret.result) {
            page++;
            var msgObj = ret.ret.data
            if (msgObj.length > 0) {

                for (let i = 0; i < msgObj.length; i++) {
                    consoledebug.log("i:" + i);
                    consoledebug.log("msgObj is i:" + JSON.stringify(msgObj[i]))
                    var interText = null;
                    //优化
                    var type = String(msgObj[i].type);      //特殊转换一下,确保为字符串
                    switch (type) {
                        case "0": //视频
                            interText = doT.template($("#message-content-template-video").text())
                            break;
                        case "1":     //图片
                            interText = doT.template($("#message-content-template-picture").text())
                            break;
                        case "2": //宣教
                            interText = doT.template($("#message-content-template-patient_tw").text())
                            break;
                        case "3":     //动态
                            interText = doT.template($("#message-content-template-circle_text").text())
                            break;
                    }
                    $("#message-content").append(interText(msgObj[i]));
                }
            } else {
                showToast('没有更多信息了')
            }
        }
    }

处理类似,题、信息..一些非必填选项,因字段为空模版不显示数据问题

此处用量表举例

  patientApi_assessRecord_getById(param, function (ret, err) {
            consoledebug.log('patientApi_assessRecord_getById ret = ' + JSON.stringify(ret));
            if (ret.result) {
                var data = ret.ret;
                 此处遍历了接口里量表信息的字段
                for (let j = 0; j < data.test_scale_json.length; j++) {
                      如果没有这个字段,就给他从新赋值=空
                    if (!data.test_scale_json[j].name) {
                        data.test_scale_json[j].name = ''
                    }
                    if (!data.test_scale_json[j].intro) {
                        data.test_scale_json[j].intro = ''
                    }
                      像这种有数据结构的字段,判断并仿照相同的数据格式从新赋值
                    if (!data.test_scale_json[j].select_scale_answer) {
                        data.test_scale_json[j].select_scale_answer = {
                            "_id": " ",
                            "scale_topic_id": " ",
                            "name": "该题未答",
                            "score": 0,
                        }
                    }
                    if (!data.test_scale_json[j].scale_score) {
                        //如果没有这个字段,意味着该题没答
                        data.test_scale_json[j].scale_score = 0
                    }
                }

另一种赋值方法

数组里的先循环 不是数组的直接用setDefaultValue方法

for (let j=0;j<data.no_test_scale_json.length;j++){
                    data.no_test_scale_json[j].message = setDefaultValue(data.no_test_scale_json[j].message,'未填写')
                }

                data.more_scale_json.test_subject.MWT_test_remarks=setDefaultValue(data.more_scale_json.test_subject.MWT_test_remarks,'')

提示成功xxx方法

300毫秒以后跳转 发送事件末尾一定要加event

     showToast('重置密码成功')
              setTimeout(function () {
                  openWinNotSlidBack('login_frm', './', {}, 2)
              },300);
上一篇 下一篇

猜你喜欢

热点阅读