Commit 57ae7633 by peii

临调下单

parent eb65aee0
......@@ -9,7 +9,8 @@ import {
SELF_SUBMIT_SUCCESS,
SELF_SUBMIT_FAILURE,
SELF_INIT_DATA,
SET_SELECT_PRODUCT_OPTS
SET_SELECT_PRODUCT_OPTS,
SET_LEND_ORDER_VALUES
} from '../base/ActionTypes';
import local_inter_mock from '../containers/selfOrder/module/mock/inter_mock'
import * as R from 'ramda'
......@@ -416,3 +417,29 @@ export function setSelectProductOpts(data) {
export async function requestSurgeryType(global_domain_config, params) {
return await GetRequest(global_domain_config, getUrlParams(`/inventory/category/search`, params))
}
/**
* @description: 请求临调订单各种显示
* @param {*}
* @return {*}
*/
export function getLendOrderCodeValues() {
return (dispatch, getState) => {
let {global_domain_config, token} = getState().login
const params = {
access_token: token,
value_set_code: 'OBS_MOBILE_LEND_ORDER'
}
GetRequest(global_domain_config, getUrlParams('/system/value_set/search', params)).then(res => {
const values = R.pathOr([], ['data', 'sys_values'])(res)
dispatch(setLendOrderCodeValues(values))
})
}
}
export function setLendOrderCodeValues(values) {
return {
type: SET_LEND_ORDER_VALUES,
values
}
}
......@@ -2,7 +2,7 @@
* @FilePath: /BoneHouse_Business_APP/app/base/ActionTypes.js
* @Author: peii
* @Date: 2022-01-04 10:18:02
* @LastEditTime: 2022-01-05 14:52:02
* @LastEditTime: 2022-01-05 18:15:40
* @LastEditors: peii
* @Vision: 1.0
* @Description:
......@@ -32,6 +32,7 @@ export const SELF_SUBMIT_SUCCESS = "SELF_SUBMIT_SUCCESS"
export const SELF_SUBMIT_FAILURE = "SELF_SUBMIT_FAILURE"
export const SELF_INIT_DATA = "SELF_INIT_DATA"
export const SET_SELECT_PRODUCT_OPTS = "SET_SELECT_PRODUCT_OPTS"
export const SET_LEND_ORDER_VALUES = "SET_LEND_ORDER_VALUES"
//-----------quick order---------------------
export const QUICK_ORDER_LIST_NO = "QUICK_ORDER_LIST_NO"
export const QUICK_ORDER_LIST_DOING = "QUICK_ORDER_LIST_DOING"
......
......@@ -14,6 +14,7 @@ import {
font_family_regular,
} from '../../base/BaseStyle'
import { exitLoginStatus, requestSysProfile, setNavigation } from '../../action/LoginAction'
import { getLendOrderCodeValues } from '../../action/SelfAction'
import { getSettlementStatus, getInvoiceStatus } from '../../action/SettlementAction'
import HeadBackItem from '../common/HeadBackItem'
import StatusBarView from '../common/StatusBarView'
......@@ -44,6 +45,9 @@ class HomePage extends Component {
icon: require('../../images/self_order.png'),
title: '自助下单',
page: 'SelfOrderPage',
params: {
isLendOrder: false,
},
},
MOBILE_TRANSFER_APPLICATION: {
icon: require('../../images/trans_order.png'),
......@@ -55,6 +59,14 @@ class HomePage extends Component {
title: '门禁管理',
page: 'DeviceInfoPage',
},
MOBILE_LEND_ORDER: {
icon: require('../../images/lend_icon.png'),
title: '临调下单',
page: 'SelfOrderPage',
params: {
isLendOrder: true,
},
},
},
// 结算模块
MOBILE_SETTLEMENT_MODULE: {
......@@ -91,7 +103,7 @@ class HomePage extends Component {
},
},
tabs: [],
initialPage: 1,
initialPage: 0,
icons: {
MOBILE_BUSINESS_MODULE: {
defIcon: require('../../images/tab_mod_def.png'),
......@@ -115,6 +127,7 @@ class HomePage extends Component {
this.getSysConfigValue()
this.props.setNavigation(this.props.navigation)
this.getSettlementStatus()
this.getLendOrderCodeValues()
}
componentWillReceiveProps(nextProps) {
......@@ -195,15 +208,32 @@ class HomePage extends Component {
}
}
/**
* @description: 请求结算单状态
* @param {*}
* @return {*}
*/
getSettlementStatus() {
const { tabs } = this.state
const settlementModule = R.find(R.propEq('code', 'MOBILE_SETTLEMENT_MODULE'))(tabs)
if (isBlank(settlementModule)) return
// 结算单状态
this.props.getSettlementStatus()
// 直销开票状态
this.props.getInvoiceStatus()
}
getLendOrderCodeValues() {
const { tabs } = this.state
const businessModule = R.find(R.propEq('code', 'MOBILE_BUSINESS_MODULE'))(tabs)
if (isBlank(businessModule)) return
const lendOrder = R.find(R.propEq('function_code', 'MOBILE_LEND_ORDER'))(businessModule.children)
if (isBlank(lendOrder)) return
this.props.getLendOrderCodeValues()
}
// 跳转页面
jumpToSubpage(menu) {
const page = menu.page
......@@ -213,7 +243,7 @@ class HomePage extends Component {
if ('LoginPage' === page) {
this.props.exitLoginStatus()
}
this.props.navigation.navigate(page, { title: menu.function_name })
this.props.navigation.navigate(page, { title: menu.function_name, params: menu.params })
}
render() {
......@@ -350,6 +380,9 @@ const mapDispatchToProps = dispatch => ({
getInvoiceStatus: () => {
dispatch(getInvoiceStatus())
},
getLendOrderCodeValues: () => {
dispatch(getLendOrderCodeValues())
},
})
export default connect(mapStateToProps, mapDispatchToProps)(HomePage)
......@@ -3,7 +3,7 @@ import { View, Text, SafeAreaView, StyleSheet, TouchableOpacity, Image, ScrollVi
import { connect } from 'react-redux';
import { home_background_color, placehold_text_color, promary_color, safe_view, icon_style, list_common_item } from '../../base/BaseStyle';
import { ImageTextStyle, CellTextStyle, FooterBtnStyle } from '../common/CellTextStyle';
import { show, formatStrForDate, cloneObject, dedupQuoteArray, isBlank, isNotBlank } from '../../utils/Utils';
import { show, formatStrForDate, cloneObject, dedupQuoteArray, isBlank, isNotBlank, decodeDisplayProfiles } from '../../utils/Utils';
import HeadBackItem from '../common/HeadBackItem';
import StatusBarView from '../common/StatusBarView';
import DialogModel from '../common/DialogModel';
......@@ -174,7 +174,34 @@ class SelfOrderPage extends Component {
title: '手术类型',
name: '请选择',
value: '',
}
},
{
"id": "20",
title: '患者姓名',
value: ''
},
{
"id": "21",
title: '性别', // 选择
name: '请选择',
value: ''
},
{
"id": "22",
title: '年龄', // 输入
value: ''
},
{
"id": "23",
title: '床位',
value: ''
},
{
"id": "24",
title: '病历号',
value: ''
},
],
subInitListOption: [], // 存储最初数据
submitOption: { // 提交的信息
......@@ -204,6 +231,15 @@ class SelfOrderPage extends Component {
name: '请选择',
value: ''
},
sexTypeOption: [ // 性别
{
name:'男',
value:'男'
},{
name:'女',
value:'女'
}
],
currentTitle: '组织', // 当前点击项
showTypePop: false, // 选择器弹窗
isSubLoding: false, // 加载中弹窗
......@@ -246,6 +282,13 @@ class SelfOrderPage extends Component {
}
}
/**
* @description: 临调表显示
* @param {*}
* @return {*}
*/
decodeDisplayLendProfile = decodeDisplayProfiles(this.props.lend_order_value_profiles)
// 赋值销售员 初始化数据
getSellerName() {
let { state, props } = this
......@@ -531,10 +574,17 @@ class SelfOrderPage extends Component {
// 判断是否都有值,修改提交按钮的颜色
changeCanSub(isSubCheck) {
let { listOptionData, sysValues} = this.state
let { sysProfiles } = this.props
let { sysProfiles, navigation } = this.props
let tempStatus = false
let tempTit = ''
let curTip = '未选择'
const {isLendOrder} = navigation.getParam('params')
const patientNameProfile = this.decodeDisplayLendProfile('PATIENT_NAME_DISPLAY')
const patientGenderProfile = this.decodeDisplayLendProfile('PATIENT_GENDER_DISPLAY')
const patientAgeProfile = this.decodeDisplayLendProfile('PATIENT_AGE_DISPLAY')
const hospitalizationNumberProfile = this.decodeDisplayLendProfile('HOSPITALICATION_NUMBER_DISPLAY')
const patientIdProfile = this.decodeDisplayLendProfile('PATIENT_ID_DISPLAY')
for (let chIndex in listOptionData) {
if (chIndex > 0 && chIndex < 10 && chIndex != 5
&& !listOptionData[chIndex].value
......@@ -558,6 +608,20 @@ class SelfOrderPage extends Component {
tempStatus = true
break
}
if (isLendOrder &&
(chIndex == 20 && patientNameProfile.required ||
chIndex == 21 && patientGenderProfile.required ||
chIndex == 22 && patientAgeProfile.required ||
chIndex == 23 && hospitalizationNumberProfile.required ||
chIndex == 24 && patientIdProfile.required
)
&& !listOptionData[chIndex].value
) {
tempTit = listOptionData[chIndex].title
tempStatus = true
break
}
}
this.setState({
canSubFlag: !tempStatus
......@@ -1638,6 +1702,18 @@ class SelfOrderPage extends Component {
sysValues.OBS_MOBILE_DELIVERYMAN_DISPLAY > 0 && (tempSubOption.deliveryman_code = state.listOptionData[17].value)
const {isLendOrder} = this.props.navigation.getParam('params')
const patientNameProfile = this.decodeDisplayLendProfile('PATIENT_NAME_DISPLAY')
const patientGenderProfile = this.decodeDisplayLendProfile('PATIENT_GENDER_DISPLAY')
const patientAgeProfile = this.decodeDisplayLendProfile('PATIENT_AGE_DISPLAY')
const hospitalizationNumberProfile = this.decodeDisplayLendProfile('HOSPITALICATION_NUMBER_DISPLAY')
const patientIdProfile = this.decodeDisplayLendProfile('PATIENT_ID_DISPLAY')
isLendOrder && patientNameProfile.show && (tempSubOption.patient_name = state.listOptionData[20].value)
isLendOrder && patientGenderProfile.show && (tempSubOption.patient_gender = state.listOptionData[21].value)
isLendOrder && patientAgeProfile.show && (tempSubOption.patient_age = state.listOptionData[22].value)
isLendOrder && hospitalizationNumberProfile.show && (tempSubOption.hospitalization_number = state.listOptionData[23].value)
isLendOrder && patientIdProfile.show && (tempSubOption.patient_id = state.listOptionData[24].value)
// tempSubOption.replace_item_flag = state.listOptionData[10].replace_item_flag
// tempSubOption.take_cert_flag = state.listOptionData[10].take_cert_flag
......@@ -1865,6 +1941,38 @@ class SelfOrderPage extends Component {
})
}
/**
* @description: 输入信息处理
* @param {*}
* @return {*}
*/
patientInfoInputHandler(text, item) {
const {listOptionData} = this.state
item.value = text
this.setState({ listOptionData }, () => {
this.changeCanSub()
})
}
handleGenderCheck(curData) {
let { sexTypeOption } = this.state
let that = this
if(this.judgeOrgIsNull() && this.judgeCustomerIsNull()) {
that.setState({
currentTitle: curData.title,
currentItem: {
name: curData.name,
value: curData.value
}
}, () => {
that.setState({
showTypePop: true,
listCurrentOption: [...sexTypeOption]
})
})
}
}
// 提交的提示回调函数
modelPackageCertCB(typeName, nowVal) {
// let { listOptionData } = this.state
......@@ -1911,8 +2019,16 @@ class SelfOrderPage extends Component {
// 返回备注以上的元素
renderListItem() {
let { listOptionData, dateModelPop, sysValues } = this.state
const {sysProfiles} = this.props
const {sysProfiles, navigation} = this.props
const isShowOrg = R.compose(R.equals('Y'), R.prop('OBS_SHOW_ORG_FLAG'))(sysProfiles)
const { isLendOrder } = navigation.getParam('params')
const doctorNameProfile = this.decodeDisplayLendProfile('DOCTOR_DISPLAY')
const patientNameProfile = this.decodeDisplayLendProfile('PATIENT_NAME_DISPLAY')
const patientGenderProfile = this.decodeDisplayLendProfile('PATIENT_GENDER_DISPLAY')
const patientAgeProfile = this.decodeDisplayLendProfile('PATIENT_AGE_DISPLAY')
const hospitalizationNumberProfile = this.decodeDisplayLendProfile('HOSPITALICATION_NUMBER_DISPLAY')
const patientIdProfile = this.decodeDisplayLendProfile('PATIENT_ID_DISPLAY')
return (
<View style={styles.list_cont}>
......@@ -2059,6 +2175,74 @@ class SelfOrderPage extends Component {
listHasArrow={true}
/>
}
{
isLendOrder && patientNameProfile.show &&
<PageListArrow
listHasAster={true}
listItem={listOptionData[20]}
listDefaValue={'value'}
listHasAster={patientNameProfile.required}
listTitle={'title'}
listInputPlace={`请输入${listOptionData[20].title}`}
inputCallBack={(text) => this.patientInfoInputHandler(text, listOptionData[20])}
isTitInputStyle={true}
listCellStyle={styles.list_cell_box}
/>
}
{
isLendOrder && patientGenderProfile.show &&
<PageListArrow
listActOpa={.8}
listHasAster={patientGenderProfile.required}
listItem={listOptionData[21]}
listName={'name'}
listTitle={'title'}
listCallBack={() => this.handleGenderCheck(listOptionData[21])}
listHasArrow={true}
/>
}
{
isLendOrder && patientAgeProfile.show &&
<PageListArrow
listHasAster={true}
listItem={listOptionData[22]}
listDefaValue={'value'}
listHasAster={patientAgeProfile.required}
listTitle={'title'}
listInputPlace={`请输入${listOptionData[22].title}`}
inputCallBack={(text) => this.patientInfoInputHandler(text, listOptionData[22])}
isTitInputStyle={true}
listCellStyle={styles.list_cell_box}
/>
}
{
isLendOrder && hospitalizationNumberProfile.show &&
<PageListArrow
listHasAster={true}
listItem={listOptionData[23]}
listDefaValue={'value'}
listHasAster={hospitalizationNumberProfile.required}
listTitle={'title'}
listInputPlace={`请输入${listOptionData[23].title}`}
inputCallBack={(text) => this.patientInfoInputHandler(text, listOptionData[23])}
isTitInputStyle={true}
listCellStyle={styles.list_cell_box}
/>
}
{
isLendOrder && patientIdProfile.show &&
<PageListArrow
listHasAster={true}
listItem={listOptionData[24]}
listDefaValue={'value'}
listHasAster={patientIdProfile.required}
listTitle={'title'}
listInputPlace={`请输入${listOptionData[24].title}`}
inputCallBack={(text) => this.patientInfoInputHandler(text, listOptionData[24])}
isTitInputStyle={true}
listCellStyle={styles.list_cell_box}
/>
}
<PageListArrow
listActOpa={.8}
listHasAster={true}
......@@ -2434,7 +2618,8 @@ const mapStateToProps = (state) => {
selfOrderOption: state.selfOrder.selfOrderOption,
global_domain_config: state.login.global_domain_config,
local_sele_pro_options: state.selfOrder.local_sele_pro_options,
sysProfiles: state.login.sysProfiles
sysProfiles: state.login.sysProfiles,
lend_order_value_profiles: state.selfOrder.lend_order_value_profiles
}
}
......
/*
* @FilePath: /BoneHouse_Business_APP/app/reducers/module/selfOrder.js
* @Author: peii
* @Date: 2021-02-03 20:59:10
* @LastEditTime: 2022-01-06 10:43:33
* @LastEditors: peii
* @Vision: 1.0
* @Description:
*/
import {
SELF_ORDER_LIST_NO,
SELF_ORDER_LIST_DOING,
......@@ -8,7 +17,8 @@ import {
SELF_SUBMIT_SUCCESS,
SELF_SUBMIT_FAILURE,
SELF_INIT_DATA,
SET_SELECT_PRODUCT_OPTS
SET_SELECT_PRODUCT_OPTS,
SET_LEND_ORDER_VALUES
} from '../../base/ActionTypes';
// 自助下单状态
......@@ -17,6 +27,7 @@ const defaultState = {
submit_self_order_status: SELF_SUBMIT_NO, // 提交订单状态
selfOrderOption: {}, // 当前临时存储数据
local_sele_pro_options: {}, // 选择产品临时存储
lend_order_value_profiles: []
}
export default selfOrder = (state = defaultState, action) => {
......@@ -59,6 +70,10 @@ export default selfOrder = (state = defaultState, action) => {
return Object.assign({}, state, {
local_sele_pro_options: action.rawData
})
case SET_LEND_ORDER_VALUES:
return Object.assign({}, state, {
lend_order_value_profiles: action.values
})
default:
return state;
}
......
......@@ -325,3 +325,19 @@ export const showErrorMessage = (dispatch, err, errorCallback, logTit) => {
export const isBlank = R.anyPass([R.isNil, R.isEmpty])
export const isNotBlank = R.complement(isBlank)
/**
* @description: 解释显示及必填
* @param {*}
* @return {object} {show: boolean, required: boolean}
*/
export const decodeDisplayProfiles = R.curry((codeValues, code) => {
if (isBlank(codeValues)) return { show: false }
const values = R.find(R.propEq('value_code', code))(codeValues);
if (isBlank(values)) return {show: false}
return {
show: R.includes(R.prop('value_tag')(values), ['2', '3']),
required: R.includes(R.prop('value_tag')(values), ['3']),
}
})
\ No newline at end of file
......@@ -2,7 +2,7 @@
* @FilePath: /BoneHouse_Business_APP/src/pages/invoice/direct/index.tsx
* @Author: peii
* @Date: 2021-12-27 09:59:21
* @LastEditTime: 2022-01-04 17:48:31
* @LastEditTime: 2022-01-06 11:45:09
* @LastEditors: peii
* @Vision: 1.0
* @Description: 基于消耗单的直销开票申请
......
......@@ -2,7 +2,7 @@
* @FilePath: /BoneHouse_Business_APP/src/services/api.ts
* @Author: peii
* @Date: 2021-12-19 16:06:26
* @LastEditTime: 2022-01-05 15:32:02
* @LastEditTime: 2022-01-06 14:24:53
* @LastEditors: peii
* @Vision: 1.0
* @Description: 未重构完全暂用的所有请求
......@@ -130,6 +130,6 @@ export default {
process_code: ConsumeProcessCode
data: { consume_order_number: string; sur_consume_line_if?: { line_number: string; process_code: string }[] }
}) {
return request({ url: `${v}/consume/update`, data, method: `POST` })
return request({ url: `${v}/surgery/consume/update`, data, method: `POST` })
},
}
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