Commit f892350c by peii

消耗添加费用及手术时间修改

parent 4daaa438
// TODO: 提交前删除
{
"name": "BoneHouse_Hospital_APP",
"displayName": "BoneHouse_Hospital_APP"
"name": "BoneHouse_Business_APP",
"displayName": "BoneHouse_Business_APP"
}
\ No newline at end of file
......@@ -11,7 +11,7 @@ import ChooseProductPage from './containers/selfOrder/module/ChooseProductPage';
import EditThirdLevelPage from './containers/selfOrder/module/EditThirdLevelPage';
import EquipConsuPage from './containers/equipConsu/EquipConsuPage';
import ConsumDetailsPage from './containers/equipConsu/module/ConsumDetailsPage';
import ChargeDetailsPage from './containers/equipConsu/module/ChargeDetailsPage';
import ChargeDetailsPage from './containers/equipConsu/module/ChargeDetailsPageRef';
import FillUnitPricePage from './containers/equipConsu/module/FillUnitPricePage';
import OrdersPage from './containers/equipConsu/module/OrdersPage';
import ShowDetailPage from './containers/equipConsu/module/ShowDetailPage';
......
......@@ -125,6 +125,16 @@ export const reqEquipOrderInfo = async (global_domain_config, params) => {
return await GetRequest(global_domain_config, getUrlParams('/surgery/collect_order/search', params))
}
/**
* @description: 请求费用行
* @param {*} global_domain_config
* @param {*} params
* @return {*}
*/
export const reqConsumeFeeLines = async (global_domain_config, params) => {
return await GetRequest(global_domain_config, getUrlParams('/surgery/consume_fee_line/search', params))
}
function requestListDataing() {
return {
type: EQUIP_CONSU_LIST_DOING
......
......@@ -91,6 +91,9 @@ class DateModel extends Component {
renderDialog() {
let { currentDate, date_mode } = this.state
const {minuteInterval, maximumDate, minimumDate} = this.props
const date = currentDate && new Date(currentDate)
return (
<View style={styles.opt_area}>
<View style={styles.modal_style}>
......@@ -113,11 +116,14 @@ class DateModel extends Component {
</View>
<View style={styles.date_box}>
<DatePicker
date={currentDate}
date={date}
onDateChange={(date) => this.currentDateChange(date)}
locale="zh"
minuteInterval={minuteInterval || 5}
mode={date_mode}
/>
maximumDate={maximumDate}
minimumDate={minimumDate}
/>
</View>
</View>
</View>
......
......@@ -60,11 +60,11 @@ class PageListArrow extends Component {
>
<CellTextStyle style={listCellStyle ? listCellStyle : ''}>
{ listHasAster ? <AsteriskTextStyle>*</AsteriskTextStyle> : null }
<TitleTextStyle style={isTitInputStyle ? styles.cell_title : ''}>{listItem[listTitle]}</TitleTextStyle>
<TitleTextStyle style={isTitInputStyle ? styles.cell_title : ''}>{listItem[listTitle] || listTitle}</TitleTextStyle>
{ (listEditAble || inputCallBack) ? <ContInputTextStyle
style={isTitInputStyle ? styles.cell_input : ''}
editable={!listEditAble}
defaultValue={listItem[listDefaValue]}
editable={listEditAble}
defaultValue={listItem[listDefaValue] && listItem[listDefaValue].toString()}
placeholder={listInputPlace}
keyboardType={inputKeyboardType ? inputKeyboardType : 'default'}
onChangeText={(text) => {return inputCallBack ? inputCallBack(text) : ''}}
......
......@@ -9,10 +9,10 @@ import { dedupQuoteArray, show, formatStrForDate, cloneObject } from '../../util
import DateModel from '../common/DateModel';
import DialogModel from '../common/DialogModel';
import ZoomPictureModel from '../common/ZoomPictureModel';
import { requestEquipOrganizations, requestEquipSurgeryHospital, requestEquipOrderInfo, uploadEquipImg, setSubdetailOption, setCharDetailsOption, requestEquipSumbit, setEquipInitData, reqEquipSurgeryHospital, reqEquipOrderInfo, requestListDataSuccess, reqEquipOrganizations, requestEquipDetails, reqOrgDepartments } from '../../action/EquipAction';
import { requestEquipOrganizations, requestEquipSurgeryHospital, requestEquipOrderInfo, uploadEquipImg, setSubdetailOption, setCharDetailsOption, requestEquipSumbit, setEquipInitData, reqEquipSurgeryHospital, reqEquipOrderInfo, requestListDataSuccess, reqEquipOrganizations, requestEquipDetails, reqOrgDepartments, reqConsumeFeeLines } from '../../action/EquipAction';
import { EQUIP_CONSU_LIST_DOING, EQUIP_CONSU_LIST_SUCCESS, EQUIP_CONSU_LIST_FAILURE, LOGIN_NO, EQUIP_SUBMIT_DOING, EQUIP_SUBMIT_SUCCESS, EQUIP_SUBMIT_FAILURE } from '../../base/ActionTypes';
import moment from 'moment';
import { isNotBlank } from "../../utils/Utils";
import { isNotBlank, isBlank } from "../../utils/Utils";
import ImagePicker from 'react-native-image-picker';
import { exitLoginStatus, requestSysProfile } from '../../action/LoginAction';
import LodingModel from '../common/LodingModel';
......@@ -189,7 +189,8 @@ class EquipConsuPage extends Component {
departments: [],
localDoctors: [],
localFollowers: [],
orderInfos: {}
orderInfos: {},
fees: {}
}
}
......@@ -274,6 +275,8 @@ class EquipConsuPage extends Component {
listOptionData[13].subOption = nextProps.charDetailOption
this.setState({
listOptionData
}, () => {
that.changeCanSub()
})
}
if(submit_equip_order_status != nextProps.submit_equip_order_status) {
......@@ -392,10 +395,11 @@ class EquipConsuPage extends Component {
tempTit = `“${listOptionData[chIndex].title}”未输入`
tempStatus = true
break
} else if( chIndex == 12
&& !listOptionData[chIndex].subOption.length ) {
tempTit = `“${listOptionData[chIndex].title}”未添加`
tempStatus = true
} else if( chIndex == 12 || chIndex == 13 ) {
if (isBlank(listOptionData[12].subOption) && isBlank(listOptionData[13].subOption)) {
tempTit = `“耗材明细”或“费用明细”必须添加一项`
tempStatus = true
}
break
} else if ( sysValues.OBS_MOBILE_CONSU_DEPARTMENT_DISPLAY == 3 && chIndex == 15 && !listOptionData[15].value) {
tempTit = `“${listOptionData[chIndex].title}”未选择`
......@@ -520,7 +524,7 @@ class EquipConsuPage extends Component {
localDoctors: doctors,
localFollowers: followers
})
this.props.navigation.navigate('OrdersPage', {orders: equipOrderOption, title: '选择借货订单', selectCallback: this.selectCallback.bind(this)})
this.props.navigation.navigate('OrdersPage', {orders: equipOrderOption, title: '选择借货订单', selectCallback: this.selectOrderCallback.bind(this)})
return
}
this.setState({
......@@ -782,7 +786,7 @@ class EquipConsuPage extends Component {
if (isNotBlank(options)) {
// this.setState({ listCurrentOption: options, showTypePop: true })
const equipOrderOption = orderInfos[`${listOptionData[1].value}_${listOptionData[2].value}_source`]
this.props.navigation.navigate('OrdersPage', {orders: equipOrderOption, title: '选择借货订单', selectCallback: this.selectCallback.bind(this)})
this.props.navigation.navigate('OrdersPage', {orders: equipOrderOption, title: '选择借货订单', selectCallback: this.selectOrderCallback.bind(this)})
return
}
let params = {
......@@ -807,7 +811,7 @@ class EquipConsuPage extends Component {
* @param {*} item
* @return {*}
*/
selectCallback(item) {
selectOrderCallback(item) {
const { listOptionData } = this.state
listOptionData[3].value = item.collect_number
listOptionData[3].name = item.collect_number
......@@ -816,9 +820,34 @@ class EquipConsuPage extends Component {
this.getCurOrderDetail()
this.autoSetDoctorAndFollower()
this.setUserEnteredPrice(item.collect_number)
this.getConsumeFeeLines(item.collect_number)
})
}
/**
* @description: 获取消耗费用
* @param {*}
* @return {*}
*/
async getConsumeFeeLines(collect_number) {
const params = {
access_token: this.props.token,
surgery_collect_number: collect_number
}
try {
const res = await reqConsumeFeeLines(this.props.global_domain_config, params)
console.log(res);
if (res.error_code !== 0) {
return show(res.error_msg || '请求失败')
}
this.setState({fees: res.data})
this.props.setCharDetailsOption(res.data.collect_fee_lines)
return res.data
} catch (error) {
console.log(error);
}
}
// 客户名称选择后,判断订单信息是否只有一条数据
async customerGetOrderInfo() {
let { state, props } = this
......@@ -944,7 +973,7 @@ class EquipConsuPage extends Component {
if(date) {
listOptionData.map(function (item) {
if (item.title === curData.title) {
item.dateValue = formatStrForDate(date)
item.dateValue = date
}
})
this.setState({
......@@ -970,7 +999,7 @@ class EquipConsuPage extends Component {
if(item.title === '手术时间') {
item.name = date
item.value = date
item.dateValue = formatStrForDate(date)
item.dateValue = date
}
return item
})
......@@ -1148,8 +1177,17 @@ class EquipConsuPage extends Component {
}
// 费用明细 点击
handleChargeDetailsCheck() {
this.props.navigation.navigate('ChargeDetailsPage', { title: '器械消耗 - 添加明细' })
async handleChargeDetailsCheck() {
const { listOptionData, fees } = this.state
if (isBlank(listOptionData[3].value)) {
return show('请先选择订单信息')
}
let storeFees = fees
if (isBlank(fees)) {
storeFees = await this.getConsumeFeeLines(listOptionData[3].value)
}
this.props.navigation.navigate('ChargeDetailsPage', { title: '器械消耗 - 添加明细', fees: storeFees })
}
// 添加图片 点击
......@@ -1302,17 +1340,15 @@ class EquipConsuPage extends Component {
sysValues.OBS_MOBILE_CONSU_FOLLOW_DISPLAY > 0 && (tempSubOption.surgery_follower_code = state.listOptionData[17].value)
if(state.listOptionData[13].subOption && state.listOptionData[13].subOption.length > 0){
tempSubOption.fee_lines = []
state.listOptionData[13].subOption.forEach(item => {
if(item.fee_amount && item.fee_type){
let obj_val = {
fee_amount : item.fee_amount,
fee_type : item.fee_type,
remark: item.remark
}
tempSubOption.fee_lines.push(obj_val)
}
})
tempSubOption.fee_lines = R.compose(
R.map(item => {
item.quantity = Number(item.quantity)
item.sale_price = Number(item.sale_price)
return item
}),
R.map(R.dissocPath(['id'])),
R.pathOr([], ['listOptionData', 13, 'subOption'])
)(state)
}
if( tempSubOption.lines.length ) {
tempSubOption.lines = tempSubOption.lines.map(item => {
......@@ -1418,12 +1454,14 @@ class EquipConsuPage extends Component {
feeSum() {
try {
const {listOptionData} = this.state
return R.compose(
R.sum,
R.map(x => Number(x)),
R.pluck('fee_amount'),
const sum = R.compose(
R.reduce((acc, elem) => {
return acc + elem.sale_price * (elem.quantity || 1)
}, 0),
R.filter(R.allPass([R.compose(isNotBlank, R.prop('sale_price'))])),
R.pathOr([], [13, 'subOption'])
)(listOptionData)
return sum
} catch (error) {
return 0
}
......@@ -1619,6 +1657,7 @@ class EquipConsuPage extends Component {
date={listOptionData[4].dateValue}
closeModal={(show) => this.closeDateModal(show)}
show={dateModelPop}
date_mode="date"
callback={(date) => this.dateModalCallback(date, listOptionData[4])}
/>
{ this.renderPickerModel() }
......@@ -1807,10 +1846,10 @@ class EquipConsuPage extends Component {
return(
<View style={list_common_item.con_de_sub} key={index}>
<Text style={[list_common_item.de_sub_tit]}>
{index+1}{ item.fee_type_name }
{index+1}{ item.fee_category_name }
</Text>
<Text style={list_common_item.de_tip}>
{item.fee_amount_title}(¥){ item.fee_amount }
{item.item_name}:¥{ item.sale_price } * { item.quantity || 1 }
</Text>
</View>
)
......@@ -2039,7 +2078,7 @@ const mapDispatchToProps = (dispatch) => {
},
requestListDataSuccess: (data) => {
dispatch(requestListDataSuccess(data))
}
},
}
}
......
......@@ -12,8 +12,12 @@ import { connect } from 'react-redux';
import PageListArrow from '../../common/listDataComponent/PageListArrow';
import { CellTextStyle } from '../../common/CellTextStyle';
import LoadingModel from '../../common/listDataComponent/LoadingModel';
// 费用明细
/**
* @description: // 费用明细
* @param {*}
* @return {*}
* @deprecated 已废弃,使用ChargeDetailsPageRef
*/
class ChargeDetailsPage extends Component {
constructor(props) {
super(props);
......
import React, { Component } from 'react'
import { View, Text, StyleSheet, SafeAreaView, TouchableOpacity, ScrollView, FlatList, TextInput } from 'react-native'
import * as R from 'ramda'
import {
home_background_color,
promary_color,
safe_view,
list_common_item,
placehold_text_color,
second_text_size,
promary_text_color,
font_family_regular,
font_family_medium,
font_family_semibold,
first_text_color,
foundation_color,
Width,
pxSize,
} from '../../../base/BaseStyle'
import StatusBarView from '../../common/StatusBarView'
import HeadBackItem from '../../common/HeadBackItem'
import DialogModel from '../../common/DialogModel'
import { show, isBlank, isNotBlank } from '../../../utils/Utils'
import { setCharDetailsOption } from '../../../action/EquipAction'
import { connect } from 'react-redux'
import PageListArrow from '../../common/listDataComponent/PageListArrow'
import { CellTextStyle } from '../../common/CellTextStyle'
import LoadingModel from '../../common/listDataComponent/LoadingModel'
// 费用明细
class ChargeDetailsPage extends Component {
constructor(props) {
super(props)
this.state = {
charDetaOption: [],
charItems: [
{
field: 'fee_category_code',
name: 'fee_category_name',
label: '费用类型',
type: 'select',
options: [],
listHasAster: true,
listHasArrow: true,
listEditAble: true,
callback: this.categoryCallback.bind(this),
},
{
field: 'item_code',
name: 'item_name',
label: '物料名称',
type: 'select',
listHasAster: true,
listHasArrow: true,
listEditAble: true,
callback: this.itemCallback.bind(this),
},
{
field: 'general_name',
name: 'general_name',
label: '通用名称',
type: 'text',
listHasAster: false,
listHasArrow: false,
listEditAble: false,
},
{
field: 'specification',
name: 'specification',
label: '规格型号',
listEditAble: false,
listHasAster: false,
listHasArrow: false,
type: 'text',
},
{
field: 'sale_price',
name: 'sale_price',
label: '费用价格',
type: 'textinput',
inputKeyboardType: 'numeric',
listHasAster: true,
callback: (text, item, index) => {
const { charDetaOption } = this.state
charDetaOption[index].sale_price = text
this.setState({ charDetaOption })
},
},
{
field: 'quantity',
name: 'quantity',
label: '数量',
type: 'textinput',
inputKeyboardType: 'numeric',
listHasAster: true,
callback: (text, item, index) => {
const { charDetaOption } = this.state
charDetaOption[index].quantity = text
this.setState({ charDetaOption })
},
},
{
field: 'line_remark',
name: 'line_remark',
label: '备注',
type: 'textinput',
callback: (text, item, index) => {
const { charDetaOption } = this.state
charDetaOption[index].line_remark = text
this.setState({ charDetaOption })
},
},
],
listCurrentOption: [], // 当前选择器数据
showTypePop: false,
currentItem: {
name: '请选择',
value: '-1',
},
currentTitle: '费用类型', // 当前点击项
currentIndex: 0, // 当前点击项
// 新增费用项
newFeeLines: [],
}
}
componentDidMount() {
this.getLocalSelectedData()
this.getFeeTypes()
}
/**
* @description: 费用类型
* @param {*}
* @return {*}
*/
getFeeTypes() {
const { fees } = this.props.navigation.state.params
const { new_fee_lines } = fees
const newFeeLines = R.clone(new_fee_lines)
this.setState({ newFeeLines })
}
// 获取选择的数据
getLocalSelectedData() {
let { charDetailOption } = this.props
const { new_fee_lines } = this.props.navigation.state.params.fees
if (isNotBlank(charDetailOption)) {
let charDetaOption = R.compose(
R.map(it => {
it.quantity = it.quantity || 1
return it
}),
R.clone,
)(charDetailOption)
this.setState({
charDetaOption,
})
} else if (isNotBlank(new_fee_lines)) {
this.handleAddListItem()
}
}
/**
* @description: 费用类型回调
* @param {Object} item 费用项
* @return {*}
*/
categoryCallback(item, index) {
if (!item.newFlag) return show('已提交的费用明细只能删除')
const { newFeeLines } = this.state
if (isBlank(newFeeLines)) {
return show('当前数据为空')
}
const options = R.map(
R.applySpec({
value: R.prop('fee_category_code'),
name: R.prop('fee_category_name'),
}),
)(newFeeLines)
const currentItem = {
name: item.fee_category_name,
value: item.fee_category_code,
}
this.setState(
{
currentItem,
listCurrentOption: options,
currentIndex: index,
currentTitle: {
field: 'fee_category_code',
name: 'fee_category_name',
callback: selectItem => {
const { charDetaOption, currentIndex } = this.state
const charDetail = charDetaOption[currentIndex]
charDetail.item_code = ''
charDetail.item_name = ''
charDetail.general_name = ''
charDetail.specification = ''
charDetail.sale_price = ''
charDetail.quantity = 1
this.setState({ charDetaOption })
},
},
},
() => {
this.handleCloseModal(true)
},
)
}
/**
* @description: 物料回调
* @param {Object} item 费用项
* @return {*}
*/
itemCallback(item, index) {
if (!item.newFlag) return show('已提交的费用明细只能删除')
const { newFeeLines } = this.state
if (isBlank(item.fee_category_code)) {
return show('请先选择费用类型')
}
const feeItem = R.find(R.propEq('fee_category_code', item.fee_category_code))(newFeeLines)
if (isBlank(feeItem) || isBlank(feeItem.fee_lines)) {
return show('当前数据为空')
}
const options = R.map(
R.applySpec({
value: R.prop('item_code'),
name: R.prop('item_name'),
}),
)(feeItem.fee_lines)
const currentItem = {
name: item.item_name,
value: item.item_code,
}
this.setState(
{
currentItem,
listCurrentOption: options,
currentIndex: index,
currentTitle: {
field: 'item_code',
name: 'item_name',
// 选择完物料的其他操作
callback: selectItem => {
const { charDetaOption, currentIndex, newFeeLines } = this.state
const charDetail = charDetaOption[currentIndex]
const fee = R.find(R.propEq('fee_category_code', charDetail.fee_category_code))(newFeeLines)
const line = R.find(R.propEq('item_code', selectItem.value))(fee.fee_lines)
charDetail.general_name = line.general_name
charDetail.specification = line.specification
charDetail.sale_price = line.sale_price
charDetail.quantity = line.quantity || 1
this.setState({ charDetaOption })
},
},
},
() => {
this.handleCloseModal(true)
},
)
}
/**
* @description: 删除费用项
* @param {*} index
* @return {*}
*/
handleDelListItem(index) {
let { charDetaOption } = this.state
charDetaOption = R.remove(index, 1, charDetaOption)
this.setState({
charDetaOption,
})
}
/**
* @description: 新增一项费用
* @param {*}
* @return {*}
*/
handleAddListItem() {
let { charDetaOption, charItems } = this.state
// 有费用项但还没填写
if (isNotBlank(charDetaOption)) {
const lastItem = R.last(charDetaOption)
for (const key of ['fee_category_code', 'item_code', 'quantity', 'sale_price']) {
if (isBlank(lastItem[key])) {
return show('请先输入最后一项的必填信息')
}
}
}
const charOption = {
id: (Math.random() * 9999).toFixed(0),
fee_category_code: '',
fee_category_name: '',
item_code: '',
item_name: '',
general_name: '',
specification: '',
manufacturer_product_code: '',
sale_price: '',
quantity: 1,
line_remark: '',
newFlag: true,
}
charDetaOption = R.append(charOption, charDetaOption)
this.setState({
charDetaOption,
})
let cur_len = this.curScrollItemY
setTimeout(() => {
// 滚动到指定位置
this._scrollDetailView.scrollTo({ x: cur_len, y: cur_len, animated: true })
}, 100)
}
// 设置费用类型
handleSetChargeType(curDa, curIndex) {
let _this = this
let { listCurrentOption } = _this.state
_this.setState(
{
currentIndex: curIndex,
currentItem: {
name: curDa.fee_type_name,
value: curDa.fee_type,
},
},
() => {
if (listCurrentOption && listCurrentOption.length === 0) {
show('当前数据为空!')
return
}
// 解决 IOS 弹窗显示问题
setTimeout(() => {
_this.handleCloseModal(true)
}, 500)
},
)
}
// 设置费用金额
handleSetChargePrice(curIndex, curText) {
let _this = this
let { charDetaOption } = _this.state
charDetaOption[curIndex].fee_amount = curText
_this.setState({
currentIndex: curIndex,
charDetaOption,
})
}
// 设置费用备注
handleSetChargeMark(curIndex, curText) {
let _this = this
let { charDetaOption } = _this.state
charDetaOption[curIndex].remark = curText
_this.setState({
currentIndex: curIndex,
charDetaOption,
})
}
/**
* @description: 选择器回调
* @param {*} item 选中项
* @param {*} itemTitle
* @return {*}
*/
handleCallBack(item, extObj) {
let { charDetaOption, currentIndex } = this.state
// 选择了同一个
if (item.value === charDetaOption[currentIndex][extObj.field]) return
charDetaOption[currentIndex][extObj.field] = item.value
charDetaOption[currentIndex][extObj.name] = item.name
this.setState(
{
charDetaOption,
},
() => {
extObj.callback && extObj.callback(item)
},
)
}
// 关闭 选择器弹窗
handleCloseModal(show) {
this.setState({
showTypePop: show,
})
}
/**
* @description: 总数量
* @param {*}
* @return {*}
*/
count() {
const { charDetaOption } = this.state
const count = R.compose(R.sum, R.filter(isNotBlank), R.pluck('quantity'))(charDetaOption)
const sum = R.compose(
R.reduce((acc, elem) => {
return acc + elem.sale_price * elem.quantity
}, 0),
R.filter(R.allPass([R.compose(isNotBlank, R.prop('quantity')), R.compose(isNotBlank, R.prop('sale_price'))])),
)(charDetaOption)
return { count, sum }
}
/**
* @description: 确认明细 点击
* @param {*}
* @return {*}
*/
handleSubmit() {
let { charDetaOption } = this.state
const requireKeys = ['fee_category_code', 'item_code', 'sale_price', 'quantity']
for (let idx in charDetaOption) {
const item = charDetaOption[idx]
if (R.anyPass(R.map(k => R.compose(isBlank, R.prop(k)), requireKeys))(item)) {
return show('请先完成最后一项必填信息')
}
}
this.setState({
charDetaOption,
})
// 存储于store中,并跳转
this.props.setCharDetailsOption(charDetaOption)
this.props.navigation.goBack()
}
// 返回主要元素
renderContItem() {
const { charDetaOption } = this.state
return (
<ScrollView style={styles.cons_cont_scroll} ref={component => (this._scrollDetailView = component)}>
<FlatList
style={styles.cons_cont}
keyExtractor={item => item.id}
data={charDetaOption}
extraData={this.state}
renderItem={({ item, index }) => this.renderSubListItem(item, index)}
/>
{this.renderAddBtnItem()}
{this.renderLodingItem()}
</ScrollView>
)
}
// 返回每一列元素
renderSubListItem(item, index) {
const { charItems } = this.state
return (
<View style={styles.cons_sub_list} key={index + '_im'}>
<View style={styles.cons_sub_inner}>
<View style={styles.sub_list_cont}>
<Text style={styles.sub_list_tit}>费用明细({index + 1})</Text>
<TouchableOpacity
activeOpacity={0.8}
style={styles.btn_del_list}
onPress={() => this.handleDelListItem(index)}
>
<Text style={[styles.sub_list_tit, styles.sub_del_tit]}>删除</Text>
</TouchableOpacity>
</View>
{charItems.map(it => {
if (R.includes(it.type, ['select', 'text', 'textinput'])) {
const editable = item.newFlag ? (isBlank(it.listEditAble) ? true : it.listEditAble) : false
return (
<PageListArrow
key={item.id + '_' + it.field}
listActOpa={0.8}
listItem={item}
listName={it.name}
listDefaValue={it.name}
listTitle={it.label}
listHasAster={it.listHasAster}
listHasArrow={it.listHasArrow}
listEditAble={it.type === 'textinput' ? editable : false}
listCallBack={() => it.type === 'select' && it.callback && it.callback(item, index)}
listInputPlace={`请输入${it.label}`}
inputCallBack={editable ? text => it.callback(text, item, index) : null}
listCellStyle={styles.list_cell_box}
inputKeyboardType={it.inputKeyboardType}
/>
)
}
})}
</View>
</View>
)
}
// 返回增加元素
renderAddBtnItem() {
return (
<View
style={[styles.add_btn_box]}
ref={'curScrollItem'}
onLayout={e => {
this.curScrollItemY = e.nativeEvent.layout.y
}}
>
<View style={[styles.add_btn_inner]}>
<TouchableOpacity
activeOpacity={0.8}
style={[styles.sub_list_tit, styles.add_btn_cont]}
onPress={() => this.handleAddListItem()}
>
<Text style={[styles.sub_list_tit, styles.sub_del_tit, styles.add_btn_txt]}>{'+添加'}</Text>
</TouchableOpacity>
</View>
{this.renderPickerModel()}
</View>
)
}
// 返回底部元素
renderFooterBtnItem() {
return (
<View style={list_common_item.sub_box}>
<View style={list_common_item.sub_two_btn}>
<TouchableOpacity
activeOpacity={0.8}
style={[list_common_item.rig_btn, styles.fot_btn]}
onPress={() => this.handleSubmit()}
>
<Text style={list_common_item.rig_tip}>{'确定费用'}</Text>
</TouchableOpacity>
</View>
</View>
)
}
// 返回选择器
renderPickerModel() {
let { listCurrentOption, currentItem, currentTitle, showTypePop } = this.state
return (
<SafeAreaView style={styles.item_container}>
<DialogModel
entityList={listCurrentOption}
callback={(item, itemTitle) => this.handleCallBack(item, itemTitle)}
show={showTypePop}
itemValue={currentItem.value}
itemTitle={currentTitle}
closeModal={show => this.handleCloseModal(show)}
/>
</SafeAreaView>
)
}
// 返回加载中
renderLodingItem() {
return <LoadingModel ref="LoadingModel" />
}
render() {
let { navigation } = this.props
let { title } = navigation.state.params
const { newFeeLines } = this.state
const total = this.count()
return (
<View style={styles.cu_dl_container}>
<StatusBarView isReactStackNavigator={true} backgroundColor={promary_color} barStyle="light-content" />
<SafeAreaView style={safe_view}>
<HeadBackItem title={title} navigation={navigation} />
{isNotBlank(newFeeLines) && (
<View style={styles.sum_box}>
<Text style={styles.sum_box_text}>总数量:{total.count}</Text>
<Text style={styles.sum_box_text}>总费用:{total.sum}</Text>
</View>
)}
{isNotBlank(newFeeLines) && <View style={styles.cu_dl_main}>{this.renderContItem()}</View>}
{isNotBlank(newFeeLines) && this.renderFooterBtnItem()}
{isBlank(newFeeLines) && (
<View style={styles.blank_list}>
<Text style={styles.blank_list_text}>该订单无可添加费用</Text>
</View>
)}
</SafeAreaView>
</View>
)
}
}
const styles = StyleSheet.create({
cu_dl_container: {
flex: 1,
backgroundColor: home_background_color,
padding: 0,
margin: 0,
},
cu_dl_main: {
flex: 1,
},
cons_cont_scroll: {},
cons_cont: {
paddingHorizontal: 20,
},
cons_sub_list: {
backgroundColor: foundation_color,
borderRadius: 10,
marginVertical: 16,
paddingTop: 16,
},
cons_sub_inner: {},
sub_list_cont: {
display: 'flex',
flexDirection: 'row',
justifyContent: 'space-between',
marginHorizontal: 20,
paddingBottom: 10,
borderBottomWidth: 1,
borderColor: 'rgba(241, 241, 241, 0.87)',
backgroundColor: foundation_color,
},
sub_list_tit: {
fontSize: second_text_size,
fontFamily: font_family_semibold,
color: first_text_color,
},
sub_del_tit: {
color: promary_color,
},
cont_tit: {
fontSize: second_text_size,
color: promary_text_color,
fontFamily: font_family_regular,
},
cont_ser: {
fontSize: 14,
color: '#A3A3A3',
fontFamily: font_family_regular,
},
cont_pri: {
flexDirection: 'row',
alignItems: 'center',
},
pri_icon: {
color: '#EC3A2E',
fontSize: 16,
fontFamily: font_family_medium,
},
pri_inner: {
fontFamily: font_family_medium,
fontSize: second_text_size,
color: promary_text_color,
},
cont_pri_box: {
flex: 1,
paddingRight: 20,
},
pri_txt: {
fontFamily: font_family_medium,
fontSize: second_text_size,
color: promary_text_color,
},
fot_btn: {
width: '100%',
borderRadius: 10,
},
list_cell_box: {
marginBottom: 0,
borderBottomWidth: 1,
borderColor: 'rgba(241, 241, 241, 0.87)',
backgroundColor: foundation_color,
paddingHorizontal: 0,
marginHorizontal: 20,
},
add_btn_box: {
marginHorizontal: 20,
},
add_btn_inner: {
alignItems: 'center',
justifyContent: 'center',
backgroundColor: foundation_color,
marginBottom: 30,
borderRadius: 10,
},
add_btn_cont: {
alignItems: 'center',
width: '100%',
},
add_btn_txt: {
height: 46,
lineHeight: 46,
},
blank_list: {
flex: 1,
alignItems: 'center',
},
blank_list_text: {
fontSize: 20,
paddingTop: 100,
},
sum_box: {
flexDirection: 'row',
justifyContent: 'space-around',
padding: 20,
paddingBottom: 0,
},
sum_box_text: {
fontSize: 16,
fontFamily: font_family_regular,
color: '#666666',
},
})
const mapStateToProps = state => {
return {
token: state.login.token,
loginState: state.login.loginState,
global_domain_config: state.login.global_domain_config,
charDetailOption: state.equip.charDetailOption,
}
}
const mapDispatchToProps = dispatch => {
return {
exitLoginStatus: () => {
dispatch(exitLoginStatus())
},
setCharDetailsOption: data => {
dispatch(setCharDetailsOption(data))
},
}
}
export default connect(mapStateToProps, mapDispatchToProps)(ChargeDetailsPage)
......@@ -132,9 +132,24 @@ class EquipConsuPage extends Component {
{
"id": "8",
title: '手术时间',
name: moment(new Date()).format("YYYY-MM-DD HH:mm"),
value: moment(new Date()).format("YYYY-MM-DD HH:mm"),
dateValue: new Date(),
name: (() => {
let date = moment(new Date()).add(1, 'd')
date.set('hour', 10)
date.set('minute', 0)
return date.format('YYYY-MM-DD HH:mm')
})(),
value: (() => {
let date = moment(new Date()).add(1, 'd')
date.set('hour', 10)
date.set('minute', 0)
return date.format('YYYY-MM-DD HH:mm')
})(),
dateValue: (() => {
let date = moment(new Date()).add(1, 'd')
date.set('hour', 10)
date.set('minute', 0)
return date
})(),
showDatePicker: true
},
{
......@@ -1797,6 +1812,7 @@ class EquipConsuPage extends Component {
closeModal={(show) => this.closeDateModal(show)}
show={dateModelPop}
callback={(date) => this.dateModalCallback(date, listOptionData[8])}
minuteInterval={60}
/>
{ this.renderPickerModel() }
</View>
......
......@@ -71,10 +71,25 @@ class SelfOrderPage extends Component {
},
{
"id": "6",
title: '需求时间',
name: moment(new Date()).format("YYYY-MM-DD HH:mm"),
value: moment(new Date()).format("YYYY-MM-DD HH:mm"),
dateValue: new Date(),
title: '手术时间',
name: (() => {
let date = moment(new Date()).add(1, 'd')
date.set('hour', 10)
date.set('minute', 0)
return date.format('YYYY-MM-DD HH:mm')
})(),
value: (() => {
let date = moment(new Date()).add(1, 'd')
date.set('hour', 10)
date.set('minute', 0)
return date.format('YYYY-MM-DD HH:mm')
})(),
dateValue: (() => {
let date = moment(new Date()).add(1, 'd')
date.set('hour', 10)
date.set('minute', 0)
return date
})(),
showDatePicker: true
},
{
......@@ -1998,6 +2013,7 @@ class SelfOrderPage extends Component {
closeModal={(show) => this.closeDateModal(show)}
show={dateModelPop}
callback={(date) => this.dateModalCallback(date, listOptionData[6])}
minuteInterval={60}
/>
{ this.renderPickerModel()}
{/* { this.renderTipModelPackage()}
......
......@@ -8,7 +8,12 @@
"test": "jest"
},
"dependencies": {
"@ant-design/react-native": "^4.2.0",
"@react-native-community/cameraroll": "^4.0.4",
"@react-native-community/segmented-control": "^2.2.2",
"@react-native-community/slider": "^3.0.3",
"@types/ramda": "^0.27.39",
"lodash.debounce": "^4.0.8",
"moment": "2.29.1",
"ramda": "^0.27.1",
"react": "16.8.3",
......@@ -20,6 +25,7 @@
"react-native-fs": "2.14.1",
"react-native-image-picker": "0.28.0",
"react-native-image-zoom-viewer": "3.0.1",
"react-native-pager-view": "^5.2.1",
"react-native-root-toast": "3.1.1",
"react-native-scrollable-tab-view": "0.9.0",
"react-native-sound": "0.11.0",
......
......@@ -2,6 +2,29 @@
# yarn lockfile v1
"@ant-design/icons-react-native@^2.3.1":
version "2.3.1"
resolved "https://registry.yarnpkg.com/@ant-design/icons-react-native/-/icons-react-native-2.3.1.tgz#62eb3a0c5371c35b069dd60b7c02901016ffd7eb"
integrity sha512-nLUhEP6doFtavnRO95mxTD8NoLcVJXT0fEvIQca5BJjHQeqJxroAFKbSBkS0TvRi6dJurAel38b+b8IWVXY8uQ==
"@ant-design/react-native@^4.2.0":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@ant-design/react-native/-/react-native-4.2.0.tgz#f06c1fe0caa216398f7dc81ee0419670d237e0f5"
integrity sha512-dv7a7xWxAVUSawqsQlxUqJR4HS8QxFJn5SJxTQL4weUrj5ClwDN/tbBthszZuh9rUvUZvPSlDL6UFyh4+IO59w==
dependencies:
"@ant-design/icons-react-native" "^2.3.1"
"@bang88/react-native-ultimate-listview" "^4.0.0"
"@types/shallowequal" "^1.1.1"
array-tree-filter "~2.1.0"
babel-runtime "^6.x"
deepmerge "^4.2.2"
normalize-css-color "^1.0.2"
react-native-collapsible "^1.6.0"
react-native-modal-popover "^2.0.1"
shallowequal "^1.1.0"
tslint "^6.1.3"
utility-types "^3.10.0"
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13":
version "7.12.13"
resolved "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658"
......@@ -664,6 +687,11 @@
lodash "^4.17.19"
to-fast-properties "^2.0.0"
"@bang88/react-native-ultimate-listview@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@bang88/react-native-ultimate-listview/-/react-native-ultimate-listview-4.0.0.tgz#f8c0daee1d091ea5b81891501d7f75d4717c4347"
integrity sha512-cEk3PbgvoBepByYVj0M+nRTN+V6aJWkCUY0lBRcvMcgc614RVqArZ0Q7wBBGlXRzndfq8m8BU1bLWQL+vOxc0g==
"@cnakazawa/watch@^1.0.3":
version "1.0.4"
resolved "https://registry.npm.taobao.org/@cnakazawa/watch/download/@cnakazawa/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
......@@ -820,6 +848,11 @@
"@types/istanbul-reports" "^1.1.1"
"@types/yargs" "^13.0.0"
"@react-native-community/cameraroll@^4.0.4":
version "4.0.4"
resolved "https://registry.yarnpkg.com/@react-native-community/cameraroll/-/cameraroll-4.0.4.tgz#3e2567ce54e3985e8e0a51832dfa0e1c5317f75b"
integrity sha512-3SY96Xh1yQjV5M7dFisl5kQmrO/K09URarZwmTN801KEalOoo/opsd/e8Vu1dwSKe0NGCK7A2u0oJQpeNbWbnA==
"@react-native-community/cli@^1.2.1":
version "1.12.0"
resolved "https://registry.npm.taobao.org/@react-native-community/cli/download/@react-native-community/cli-1.12.0.tgz#f4cbc2204af63a87d5736d2fa6a018c1fd5efd44"
......@@ -860,6 +893,16 @@
xcode "^2.0.0"
xmldoc "^0.4.0"
"@react-native-community/segmented-control@^2.2.2":
version "2.2.2"
resolved "https://registry.yarnpkg.com/@react-native-community/segmented-control/-/segmented-control-2.2.2.tgz#4014256819ab8f40f6bc3a3929ff14a9d149cf04"
integrity sha512-14+4HnGVrg3USqMzcHCPCqPmPmaEj0ogQH4pHRFXjoVvJokzidXBcYyXl5yrwFcKGW6zTXI6Fx9Qgt4ydtS6tw==
"@react-native-community/slider@^3.0.3":
version "3.0.3"
resolved "https://registry.yarnpkg.com/@react-native-community/slider/-/slider-3.0.3.tgz#830167fd757ba70ac638747ba3169b2dbae60330"
integrity sha512-8IeHfDwJ9/CTUwFs6x90VlobV3BfuPgNLjTgC6dRZovfCWigaZwVNIFFJnHBakK3pW2xErAPwhdvNR4JeNoYbw==
"@react-navigation/core@~3.4.1":
version "3.4.2"
resolved "https://registry.npm.taobao.org/@react-navigation/core/download/@react-navigation/core-3.4.2.tgz#bec563e94fde40fbab3730cdc97f22afbb2a1498"
......@@ -944,6 +987,11 @@
dependencies:
ts-toolbelt "^6.15.1"
"@types/shallowequal@^1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@types/shallowequal/-/shallowequal-1.1.1.tgz#aad262bb3f2b1257d94c71d545268d592575c9b1"
integrity sha512-Lhni3aX80zbpdxRuWhnuYPm8j8UQaa571lHP/xI4W+7BAFhSIhRReXnqjEgT/XzPoXZTJkCqstFMJ8CZTK6IlQ==
"@types/stack-utils@^1.0.1":
version "1.0.1"
resolved "https://registry.npm.taobao.org/@types/stack-utils/download/@types/stack-utils-1.0.1.tgz?cache=0&sync_timestamp=1605057309059&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fstack-utils%2Fdownload%2F%40types%2Fstack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
......@@ -1200,6 +1248,11 @@ array-slice@^0.2.3:
resolved "https://registry.npm.taobao.org/array-slice/download/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5"
integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU=
array-tree-filter@~2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190"
integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==
array-unique@^0.2.1:
version "0.2.1"
resolved "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
......@@ -1364,6 +1417,14 @@ babel-preset-jest@^24.9.0:
"@babel/plugin-syntax-object-rest-spread" "^7.0.0"
babel-plugin-jest-hoist "^24.9.0"
babel-runtime@^6.x:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
dependencies:
core-js "^2.4.0"
regenerator-runtime "^0.11.0"
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
......@@ -1494,6 +1555,11 @@ buffer-from@^1.0.0:
resolved "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
integrity sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=
builtin-modules@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
bytes@3.0.0:
version "3.0.0"
resolved "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
......@@ -1591,7 +1657,7 @@ chalk@^1.1.1:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1, chalk@^2.4.2:
chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1592843133653&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=
......@@ -1741,7 +1807,7 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
commander@^2.19.0, commander@^2.9.0:
commander@^2.12.1, commander@^2.19.0, commander@^2.9.0:
version "2.20.3"
resolved "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1610702173050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=
......@@ -1823,7 +1889,7 @@ copy-descriptor@^0.1.0:
resolved "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
core-js@^2.2.2, core-js@^2.4.1:
core-js@^2.2.2, core-js@^2.4.0, core-js@^2.4.1:
version "2.6.12"
resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.12.tgz?cache=0&sync_timestamp=1611040749668&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
integrity sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw=
......@@ -1945,6 +2011,11 @@ deep-is@~0.1.3:
resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
deepmerge@^4.2.2:
version "4.2.2"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
define-properties@^1.1.3:
version "1.1.3"
resolved "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
......@@ -2028,6 +2099,11 @@ diff-sequences@^24.9.0:
resolved "https://registry.npm.taobao.org/diff-sequences/download/diff-sequences-24.9.0.tgz?cache=0&sync_timestamp=1607352548704&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdiff-sequences%2Fdownload%2Fdiff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5"
integrity sha1-VxXWJE4qpl9Iu6C8ly2wsLEelbU=
diff@^4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
dom-walk@^0.1.0:
version "0.1.2"
resolved "https://registry.npm.taobao.org/dom-walk/download/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
......@@ -3059,6 +3135,13 @@ is-core-module@^2.1.0:
dependencies:
has "^1.0.3"
is-core-module@^2.2.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1"
integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==
dependencies:
has "^1.0.3"
is-data-descriptor@^0.1.4:
version "0.1.4"
resolved "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
......@@ -3929,6 +4012,11 @@ locate-path@^3.0.0:
p-locate "^3.0.0"
path-exists "^3.0.0"
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
lodash.pad@^4.1.0:
version "4.5.1"
resolved "https://registry.npm.taobao.org/lodash.pad/download/lodash.pad-4.5.1.tgz#4330949a833a7c8da22cc20f6a26c4d59debba70"
......@@ -3959,7 +4047,7 @@ lodash@^4.17.14, lodash@^4.17.19, lodash@^4.3.0, lodash@^4.6.1:
resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597336125847&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
integrity sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=
lodash@^4.17.5:
lodash@^4.17.20, lodash@^4.17.5:
version "4.17.21"
resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1613835838133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=
......@@ -4479,7 +4567,7 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
mkdirp@^0.5.1:
mkdirp@^0.5.1, mkdirp@^0.5.3:
version "0.5.5"
resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
integrity sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=
......@@ -4608,6 +4696,11 @@ node-notifier@^5.2.1, node-notifier@^5.4.2:
shellwords "^0.1.1"
which "^1.3.0"
normalize-css-color@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/normalize-css-color/-/normalize-css-color-1.0.2.tgz#02991e97cccec6623fe573afbbf0de6a1f3e9f8d"
integrity sha1-Apkel8zOxmI/5XOvu/Deah8+n40=
normalize-package-data@^2.3.2:
version "2.5.0"
resolved "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz?cache=0&sync_timestamp=1602547356577&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-package-data%2Fdownload%2Fnormalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
......@@ -5244,6 +5337,11 @@ react-native-code-push@7.0.0:
semver "^7.3.2"
xcode "3.0.1"
react-native-collapsible@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/react-native-collapsible/-/react-native-collapsible-1.6.0.tgz#ca261ffff16914f872059bb0972e3a78c4b37f9c"
integrity sha512-beZjdgbT9Y/Pg591Xy5XkKG20HffJiVad4n9bfcUF/f783A+tvOVXnqvbS58Lkaym93mi4jcDPMuW9Vc1t6rqg==
react-native-date-picker@2.7.9:
version "2.7.9"
resolved "https://registry.npm.taobao.org/react-native-date-picker/download/react-native-date-picker-2.7.9.tgz#f662d8741a3f78148eccf492d70a1740b035024b"
......@@ -5285,6 +5383,19 @@ react-native-image-zoom-viewer@3.0.1:
dependencies:
react-native-image-pan-zoom "^2.1.12"
react-native-modal-popover@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/react-native-modal-popover/-/react-native-modal-popover-2.0.1.tgz#119fb04606a205ffff41fc56666ea4c0cc833aa6"
integrity sha512-4aqjeNf3TNSUH4tK0t9ADNGqNQmY/xb0XKGtdNGhhdSZDp0oME36dj92AKxoFeU3AzfQdmd0ehOXvYUu7aaj8g==
dependencies:
lodash "^4.17.20"
prop-types "^15.7.2"
react-native-pager-view@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-5.2.1.tgz#ad69a6035edd998771daf302830f73602e5204a9"
integrity sha512-6aqsVr6Z4MjYP57lMwNEurlOPah0Lw34L6x+/nI6SxY+wyqZI+uaEB7sWS5EIcgQ9cGKMo925LnVWd6Xilu33A==
react-native-root-siblings@^3.0.0:
version "3.2.3"
resolved "https://registry.npm.taobao.org/react-native-root-siblings/download/react-native-root-siblings-3.2.3.tgz#df5a1cff3a3a1f433f57320e1cae719f1b15a3f2"
......@@ -5754,6 +5865,14 @@ resolve@^1.10.0, resolve@^1.5.0:
is-core-module "^2.1.0"
path-parse "^1.0.6"
resolve@^1.3.2:
version "1.20.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
dependencies:
is-core-module "^2.2.0"
path-parse "^1.0.6"
restore-cursor@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
......@@ -5901,7 +6020,7 @@ scheduler@^0.13.3:
loose-envify "^1.1.0"
object-assign "^4.1.1"
"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
version "5.7.1"
resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1606854493763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=
......@@ -5977,6 +6096,11 @@ setprototypeof@1.1.1:
resolved "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
integrity sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=
shallowequal@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
......@@ -6536,7 +6660,7 @@ ts-toolbelt@^6.15.1:
resolved "https://registry.npm.taobao.org/ts-toolbelt/download/ts-toolbelt-6.15.5.tgz#cb3b43ed725cb63644782c64fbcad7d8f28c0a83"
integrity sha1-yztD7XJctjZEeCxk+8rX2PKMCoM=
tslib@^1.9.0:
tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0:
version "1.14.1"
resolved "https://registry.npm.taobao.org/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1609887539329&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=
......@@ -6546,6 +6670,32 @@ tslib@^2.0.1:
resolved "https://registry.npm.taobao.org/tslib/download/tslib-2.1.0.tgz?cache=0&sync_timestamp=1609887539329&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
integrity sha1-2mCGDxwuyqVwOrfTm8Bba/mIuXo=
tslint@^6.1.3:
version "6.1.3"
resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904"
integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==
dependencies:
"@babel/code-frame" "^7.0.0"
builtin-modules "^1.1.1"
chalk "^2.3.0"
commander "^2.12.1"
diff "^4.0.1"
glob "^7.1.1"
js-yaml "^3.13.1"
minimatch "^3.0.4"
mkdirp "^0.5.3"
resolve "^1.3.2"
semver "^5.3.0"
tslib "^1.13.0"
tsutils "^2.29.0"
tsutils@^2.29.0:
version "2.29.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==
dependencies:
tslib "^1.8.1"
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
......@@ -6700,6 +6850,11 @@ util.promisify@^1.0.0:
has-symbols "^1.0.1"
object.getownpropertydescriptors "^2.1.1"
utility-types@^3.10.0:
version "3.10.0"
resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b"
integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==
utils-merge@1.0.1:
version "1.0.1"
resolved "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment