localhostword表格排版错乱乱(CSS文件无法加载,一个奇怪的问题)?

在星空-PLM产品应用中,你需要了解的典型/热门问答都在这里!  

本帖每月持续更新,欢迎小伙伴们点赞,收藏本帖,CTRL+F关键词搜索,以便随时查看、扩充知识哟

1、所有任务完成后,项目状态能否自动转换到完成状态

解决方案:1、目前任务完成无法联动项目完成

2、审批流是否可以跟任务的状态转换进行关联,当审批结束后,任务的状态为完成

4、任务完成流程和输出文件的流程可以在一个流程中完成吗?

5、这个新增引用有什么用,为什么在里面新增单据看不到,怎么使用

6、项目模板有什么作用,每一个项目实例的任务名称不同

问题描述:项目模板有什么作用

1、在项目模板中配置团队权限;

2、在项目模板中规划交付物文件夹层级结构;

3、在项目模板中配置项目工作流管控;

4、在项目模板中配置检查项;

5、在项目模板中配置输入输出交付物模板,如输出文档模板、输出PDM对象类型;

6、在项目模板中配置任务的执行控制,如工作流管控、状态转换方式管控、输出成果要求等

7、创建同类型的项目时,可引用项目模板生成实例,复制已有配置以及关联工作流,节省配置时间、减少工作量。  

8、生成实例后若有差异支持根据实际业务场景修改项目计划。

7、新建项目和立项申请单有什么区别

解决方案:1、建项目实例的五种方法:引用模板、引入MSProject、新增、复制、通过立项申请单下推;

8、项目变更是不是这样就可以了还需要做什么流程吗

解决方案:1、审核前:项目计划、团队、执行控制这三部分不能修改,其余部分的修改与在项目库中修改情况一致;

1、为什么我这多的项目模板就只有一个可以看到?

解决方案:1、检查一下项目业务类型是否绑定了该流程,路径:项目业务类型配置-绑定流程

2、项目管理中的,项目编号如何可以携带到项目新增的销售、采购、生产单据中?

问题描述:项目编号,能不能携带到项目财务、采购&生产标签下新增的相关单据中?

4、项目文档输出物如何创建三个固定文档

问题描述:项目创建后系统会自动生成输出文件夹和输入文件夹,如何在输出文件夹下自动新增三个固定的文件夹

5、文件类型里的【物料业务类型匹配设置】【文档业务类型匹配设置】以及【数据对应关系】,作用以及应用

问题描述:【物料业务类型匹配设置】【文档业务类型匹配设置】以及【数据对应关系】

6、超级BOM的组成结构,需要新增字段,请问在哪里增加?

问题描述:在超级BOM组的关系属性,找不到在BOS上新增的字段,更新字段也无用

7、请问工作流里面的调用操作怎么添加?

8、PLM文档管理/项目文档如何配置检出/检入工作流?

1、项目任务 检查项标记全部标记 未看到检查标记的地方?

解决方案:任务配置检查项,阶段转换时会校验检查项是否标记完成 

2、完成的任务状态怎么转换成进行中?

解决方案:不建议将已完成的任务转换到进行中

3、项目管理新建任务后,点击保存后,项目节点名称消失了

问题描述:项目管理新建任务后,点击保存后,项目节点名称消失了

4、甘特图一直加载中,打不开

问题描述:其他几个的甘特图正常,目前只有这一个打不开

解决方案:如果仅有个别项目无法打开,应该是保存项目过程中产生了错误数据        

甘特图无法打开的原因:项目中任务的序号不连续,程序未容错所以无法打开(PT-146915,6月补丁已修复)

建议在数据库中查询一下,任务的序号是否断层不连续;如是,请联系研发处理

查询语句:(先执行第一条,再执行第二条)

5、集成参数修改里的具体字段可以自定义吗?

问题描述:数量 名称 规格 颜色等这些字段,可以自己设定吗

6、点击安装autoCAD集成时,提示:请确认是否安装autoCAD插件

问题描述:使用管理员登录、重新安装PLM客户端、重新安装autoCAD 都不行

7、CAD已经安装好了,安装关联插件时提示安装失败

8、一张图纸对应多个颜色的物料在PLM如何处理

1、项目,启动的时候,第一个任务怎么自动去启动

解决方案:1、任务执行控制-状态转换方式,设置执行方式为“越早越好”或者“按计划时间自动处理” 

2、状态转换方式设置越早越好,开启项目执行计划 

4、项目,配置里输出PDM对象业务类型是什么作用

5、图纸和物料怎么进行绑定

6、生产订单获取PLM图纸

7、物料分组导入不进去怎么处理

8、物料申请单工作流如何在不同的节点,不同的用户填写

问题描述:规格字段在研发节点由审批人填写,采购周期字段只读;到了采购审核节点,规格字段只读

1、新增插件继承ECRBill,没生效?

2、业务类型编码置灰了,如何设置使它可以手工填写?

问题描述:物料下推推送,plm创建物料的时候这个换算单位在哪儿设置

解决方案:设计变更对象是会创建新版(T版)对象的,BOM变更是添加的对象是不创建新版(T版)

3、BOM变更,提交审批流后,无法创建T版对象,到提交状态?

问题描述:物料下推推送,plm创建物料的时候这个换算单位在哪儿设置

解决方案:设计变更对象是会创建新版(T版)对象的,BOM变更是添加的对象是不创建新版(T版)

4、任务在父任务转换到完成时,自动转换完成?

问题描述:其他帖子说可以通过设置此处可以实现,但是我这里都是灰色的不能改

解决方案:只能实现自下而上联动:子任务转换到完成,父任务自动转换完成;无法实现自上而下联动;

5、PLM物料库字段怎么添加?

解决方案:1、BOSIDE中找到“PDM基础对象扩展”单据,扩展该单据添加自定义字段

6、遇到奇怪的环境问题?

问题描述:遇到奇怪的环境问题,打开菜单,各种奇怪报错,红框,报错弹窗

解决方案:更新全局模型,清理缓存,更新配置:

7、发布单,如何设置,只给发布单和BOM报表查看权限?

问题描述:不给文档模块和BOM模块权限,只能通过发布单查看BOM报表

解决方案:业务类型授权-归档-看一下这里权限;

8、客户端如何更新组件?

解决方案:桌面右上角,打开PLM客户端,鼠标右键,点选项,现在检测与更新,修复更新;

1、PLM中的文档管理中要删除文件,提示已经被其他用户拥有,怎么查询是哪个用户点击了获取拥有权?

问题描述:PLM中的文档管理中要删除文件,提示已经被其他用户拥有,怎么查询是哪个用户点击了获取拥有权

解决方案:在BOSIDE中找到PDM基础对象单据,设置【拥有人】字段的可见性

3、换算单位在哪儿设置?

4、物料列表中的库存属性,怎么从PLM中同步?

5、物料申请单,支持块粘贴吗?

6、物料库中,物料指定字段能否有批改功能?

7、维度关联字段:辅助属性所绑定的[辅助属性配置]在单据中找不到,不允许导入?

8、文件服务器是否一定要安装相关的设计软件?

1、可以根据图纸生成BOM表么?

问题描述:客户只购买了系统建模跟文档管理,可以根据图纸生成BOM表么,具体如何操作

解决方案:不可以,文档管理是用来管理项目中的文档资料的;系统建模则是用来设置PLM的参数、执行流程等。

2、修改布局排版之后,还是原来的排版?

问题描述:业务类型配置里的属性配置,布局预览功能为什么修改布局排版之后,点击保存,还是原来的排版?

解决方案:建议将业务类型设置为模板,扩展模板在BOSIDE中调整 

问题描述:关于PLM支持的设计软件Altium Designer的版本是否支持21

解决方案:目前支持的版本 

4、PLM使用对ERP的影响?

问题描述:物料、bom的生命周期可以全程在PLM 当中控制,这种控制可以传递到erp当中吗

解决方案:在ERP模块,BOS根据物料状态,设置实体服务规则,值更新,保存校验等等控制

5、能否再次修改EBOM?

问题描述:EBOM下推后,能否再次修改EBOM,重新下推到ERP(重新下推时不删除上次下推到ERP的BOM)?

解决方案:一是变更后下推新版本BOM至ERP,ERP两个BOM并存;二是更新ERP的BOM,通过规则控制。

6、PLM变更单内容可以下推到ERP变更单列表中吗?

问题描述:业务端的人员没有PLM的权限组,查看变更内容的时候不可能都到PLM系统的设计变更中

解决方案:1、购买PLM用户许可,统计哪些人员需要查看变更内容,关键用户;

7、物料推送怎么更新ERP中物料的信息?

解决方案:物料推送配置

8、发料组织必录,如何下推到ERP?

问题描述:多组织ERP系统BOM中供应组织和发料组织以及货主字段设置了必录 ,如何把BOM从PLM 中下推到ERP系统

webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle
其它相似打包工具还有ponent {

在更新发生后立即调用componentDidUpdate()。此方法不用于初始渲染。当组件更新时,将此作为一个机会来操作DOM。只要您将当前的props与以前的props进行比较(例如,如果props没有改变,则可能不需要网络请求),这也是做网络请求的好地方。

错误边界是React组件,可以在其子组件树中的任何位置捕获JavaScript错误,记录这些错误并显示回退UI,而不是崩溃的组件树。错误边界在渲染期间,生命周期方法以及整个树下的构造函数中捕获错误。
如果类组件定义了此生命周期方法,则它将成错误边界。在它中调用setState()可以让你在下面的树中捕获未处理的JavaScript错误,并显示一个后备UI。只能使用错误边界从意外异常中恢复; 不要试图将它们用于控制流程。
错误边界只会捕获树中下面组件中的错误。错误边界本身不能捕获错误。

PureComponnet里如果接收到的新属性或者是更改后的状态和原属性、原状态相同的话,就不会去重新render了

React提供的这个ref属性,表示为对组件真正实例的引用,其实就是ReactDOM.render()返回的组件实例,ref可以挂载到组件上也可以是dom元素上。

  • 挂到组件(class声明的组件)上的ref表示对组件实例的引用。不能在函数式组件上使用 ref 属性,因为它们没有实例:
  • 挂载到dom元素上时表示具体的dom元素节点。
// useState 这个方法可以为我们的函数组件拥有自己的state,它接收一个用于初始 state 的值,返回一对变量。这里我们把计数器的初始值设置为0, 方法都是以set开始 // useState 这个方法可以为我们的函数组件拥有自己的state,它接收一个用于初始 state 的值,返回一对变量。这里我们把计数器的初始值设置为0, 方法都是以set开始 // 更改网页的标题,还可以做其它的监听
  • 只能在顶层调用Hooks。不要在循环,条件或嵌套函数中调用Hook。
  • 自定义hooks可以选择讲解
  • 父组件将自己的状态传递给子组件,子组件当做属性来接收,当父组件更改自己状态的时候,子组件接收到的属性就会发生改变
  • 父组件利用ref对子组件做标记,通过调用子组件的方法以更改子组件的状态,也可以调用子组件的方法…
  • 父组件将自己的某个方法传递给子组件,在方法里可以做任意操作,比如可以更改状态,子组件通过this.props接收到父组件的方法后调用。
    在react没有类似vue中的事件总线来解决这个问题,我们只能借助它们共同的父级组件来实现,将非父子关系装换成多维度的父子关系。react提供了context api来实现跨组件通信, React 16.3之后的contextapi较之前的好用。
    实例,使用context 实现购物车中的加减功能
// 定义count组件,用于显示数量

复杂的非父子组件通信在react中很难处理,多组件间的数据共享也不好处理,在实际的工作中我们会使用flux、redux、mobx来实现

Higher-Order Components就是一个函数,传给它一个组件,它返回一个新的组件。

比如,我们想要我们的组件通过自动注入一个版权信息。

这样只要我们有需要用到版权信息的组件,都可以直接使用withCopyright这个高阶组件包裹即可。
在这里要讲解在CRA 中配置装饰器模式的支持。
##传统MVC框架的缺陷

V即View视图是指用户看到并与之交互的界面。
M即Model模型是管理数据 ,很多业务逻辑都在模型中完成。在MVC的三个部件中,模型拥有最多的处理任务。
C即Controller控制器是指控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
MVC框架的数据流很理想,请求先到Controller, 由Controller调用Model中的数据交给View进行渲染,但是在实际的项目中,又是允许Model和View直接通信的

其实FluxReact里的应用就类似于Vue中的Vuex的作用,但是在Vue中,Vue是完整的mvvm框架,而Vuex只是一个全局的插件。
React只是一个MVC中的V(视图层),只管页面中的渲染,一旦有数据管理的时候,React本身的能力就不足以支撑复杂组件结构的项目,在传统的MVC中,就需要用到Model和Controller。Facebook对于当时世面上的MVC框架并不满意,于是就有了Flux, 但Flux并不是一个MVC框架,他是一种新的思想。

  • Store(数据层):用来存放应用的状态,一旦发生变动,就提醒Views要更新页面
  1. 组件获取到store中保存的数据挂载在自己的状态上
  2. 用户产生了操作,调用actions的方法
  3. actions接收到了用户的操作,进行一系列的逻辑代码、异步操作
  4. dispatcher接收到action并根据标识信息判断之后,调用store的更改数据的方法
  5. store的方法被调用后,更改状态,并触发自己的某一个事件
  6. store更改状态后事件被触发,该事件的处理程序会通知view去获取最新的数据

React 只是 DOM 的一个抽象层,并不是 Web 应用的完整解决方案。有两个方面,它没涉及。

    2013年 Facebook 提出了 Flux 架构的思想,引发了很多的实现。2015年,Redux 出现,将 Flux 与函数式编程结合一起,很短时间内就成为了最热门的前端架构。
    如果你不知道是否需要 Redux,那就是不需要它
    只有遇到 React 实在解决不了的问题,你才需要 Redux
    简单说,如果你的UI层非常简单,没有很多互动,Redux 就是不必要的,用了反而增加复杂性。
  • 用户的使用方式非常简单
  • 不需要与服务器大量交互,也没有使用 WebSocket
  • 视图层(View)只从单一来源获取数据
    需要使用Redux的项目:
  • 不同身份的用户有不同的使用方式(比如普通用户和管理员)
  • 与服务器大量交互,或者使用了WebSocket
  • View要从多个来源获取数据
    从组件层面考虑,什么样子的需要Redux:
  • 某个组件的状态,需要共享
  • 某个状态需要在任何地方都可以拿到
  • 一个组件需要改变全局状态
  • 一个组件需要改变另一个组件的状态
    Redux的设计思想:
  1. Web 应用是一个状态机,视图与状态是一一对应的。
  2. 所有的状态,保存在一个对象里面(唯一数据源)。

注意:flux、redux都不是必须和react搭配使用的,因为flux和redux是完整的架构,在学习react的时候,只是将react的组件作为redux中的视图层去使用了。
Redux的使用的三大原则:

这个部分,可以根据班级情况看是否讲解。对于学生使用redux有很大的帮助。不使用react,直接使用原生的html/js来写一个简易的的redux
基本的状态管理及数据渲染

3.用户产生了操作,调用了actions 的方法
4.actions的方法被调用,创建了带有标示性信息的action
Reducer必须是一个纯函数:
Reducer 函数最重要的特征是,它是一个纯函数。也就是说,只要是同样的输入,必定得到同样的输出。Reducer不是只有Redux里才有,之前学的数组方法reduce, 它的第一个参数就是一个reducer
纯函数是函数式编程的概念,必须遵守以下一些约束。

  • 不能调用Date.now()或者Math.random()等不纯的方法,因为每次会得到不一样的结果
    由于 Reducer 是纯函数,就可以保证同样的State,必定得到同样的 View。但也正因为这一点,Reducer 函数里面不能改变 State,必须返回一个全新的对象,请参考下面的写法。

最好把 State 对象设成只读。要得到新的 State,唯一办法就是生成一个新对象。这样的好处是,任何时候,与某个 View 对应的 State 总是一个不变(immutable)的对象。
我们可以通过在createStore中传入第二个参数来设置默认的state,但是这种形式只适合于只有一个reducer的时候。
因为一个应用中只能有一个大的state,这样的话reducer中的代码将会特别特别的多,那么就可以使用combineReducers方法将已经分开的reducer合并到一起

  1. 分离reducer的时候,每一个reducer维护的状态都应该不同
  2. 划分多个reducer的时候,默认状态只能创建在reducer中,因为划分reducer的目的,就是为了让每一个reducer都去独立管理一部分状态
    最开始一般基于计数器的例子讲解redux的基本使用即可
    通常情况下,action只是一个对象,不能包含异步操作,这导致了很多创建action的逻辑只能写在组件中,代码量较多也不便于复用,同时对该部分代码测试的时候也比较困难,组件的业务逻辑也不清晰,使用中间件了之后,可以通过actionCreator异步编写action,这样代码就会拆分到actionCreator中,可维护性大大提高,可以方便于测试、复用,同时actionCreator还集成了异步操作中不同的action派发机制,减少编码过程中的代码量
  • connect: 用于连接容器组件和展示组件
    根据单一store原则 ,一般只会出现在整个应用程序的最顶层。

那么,子孙级别的任何组件,要想使用store里的状态,都可以通过connect方法进行连接。如果只是想连接actionCreators,可以第一个参数传递为null

React Router现在的版本是5, 于2019年3月21日搞笑的发布,搞笑的官网链接, 本来是要发布4.4的版本的,结果成了5。从4开始,使用方式相对于之前版本的思想有所不同。之前版本的思想是传统的思想:路由应该统一在一处渲染, Router 4之后是这样的思想:一切皆组件

React Native 中使用,而实际的应用中,其实不会使用这个。

正常情况下,直接按照官网的demo就理解 路由的使用方式,有几个点需要特别的强调:

    exact属性标识是否为严格匹配, 为true是表示严格匹配,为false时为正常匹配。 怎么在渲染组件的时候,对组件传递属性呢?使用component的方式是不能直接在组件上添加属性的。所以,React Router的Route组件提供了另一种渲染组件的方式 render, 这个常用于页面组件级别的权限管理。 总是渲染第一个匹配到的组件
  • 管理一个项目路由的方法
  • HashRouter和BrowserRouter的区别,前端路由和后端路由的区别。这个在Vue里应该有讲过了。

React Router甚至大部分的前端路由都是依赖于history.js的,它是一个独立的第三方js库。可以用来兼容在不同浏览器、不同环境下对历史记录的管理,拥有统一的API。

    replaceState方法来进行跳转。通过注册监听window对象上的popstate事件来监听路由的变化,实现历史记录的回退。

由于js的对象和数组都是引用类型。所以newState的state实际上是指向于同一块内存地址的, 所以结果是newState和state是相等的。

可以看到,newState的修改也会引起state的修改。要解决这个问题,js中提供了另一种修改数据的方式,要修改一个数据之前先制作一份数据的拷贝,像这样

reduce等方式进行复制,但这些都是浅拷贝,就是只拷贝第一层数据,更深层的数据还是同一个引用,比如:

可以看到,当在更改newState更深层次的数据的时候,还是会影响到state的值。如果要深层复制,就得一层一层的做递归拷贝,这是一个复杂的问题。虽然有些第三方的库已经帮我们做好了,比如lodashcloneDeep方法。深拷贝是非常消耗性能的。

不可变数据 (Immutable Data )就是一旦创建,就不能再被更改的数据。对 Immutable 对象的任何修改或添加删除操作都会返回一个新的 Immutable 对象。Immutable 实现的原理是持久化数据结构( Persistent Data Structure),也就是使用旧数据创建新数据时,要保证旧数据同时可用且不变。同时为了避免 deepCopy 把所有节点都复制一遍带来的s性能损耗,Immutable 使用了 结构共享(Structural Sharing),即如果对象树中一个节点发生变化,只修改这个节点和受它影响的父节点,其它节点则进行共享。

  • 降低mutable带来的复杂度
  • 历史追溯性(时间旅行):时间旅行指的是,每时每刻的值都被保留了,想回退到哪一步只要简单的将数据取出就行,想一下如果现在页面有个撤销的操作,撤销前的数据被保留了,只需要取出就行,这个特性在redux或者flux中特别有用
  • 拥抱函数式编程:immutable本来就是函数式编程的概念,纯函数式编程的特点就是,只要输入一致,输出必然一致,相比于面向对象,这样开发组件和调试更方便。推荐一本函数式编程的在线免费书《JS 函数式编程指南》, 此书可以推荐给学生做为课外补充阅读。
  • 资源包大小增加(源码5000行左右)
  • 容易与原生对象混淆:由于api与原生不同,混用的话容易出错。

参考官网重点讲解数据不可变数据的创建、更新及比较方式 。对于就业班来说,掌握以下知识点即可。


Mobx是一个功能强大,上手非常容易的状态管理工具。redux的作者也曾经向大家推荐过它,在不少情况下可以使用Mobx来替代掉redux。

这张图来自于官网,把这张图理解清楚了。基本上对于mobx的理解就算入门了。
官网有明确的核心概念使用方法,并配有egghead的视频教程。这里就不一一赘述了。
要特别注意当使用 mobx-react 时可以定义一个新的生命周期钩子函数 componentWillReact。当组件因为它观察的数据发生了改变,它会安排重新渲染,这个时候 componentWillReact 会被触发。这使得它很容易追溯渲染并找到导致渲染的操作(action)。

我要回帖

更多关于 html静态页面出现中文乱码怎么解决 的文章

 

随机推荐